# wp_dropdown_pages()

URL: https://chugunov.pro/api-wordpress/functions/wp_dropdown_pages/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 2.1.0.

## Сигнатура

```php
wp_dropdown_pages( array|string $args = '' ): string
```

## Описание

См. alsoget_pages()

## Параметры

- `$args` `array|string` — необязательный, по умолчанию `''`. Массив или строка аргументов для генерации выпадающего списка страниц. Дополнительные аргументы смотрите в get_pages() .
  
  depth intМаксимальная глубина. По умолчанию 0.
  
  child_of intID страницы, дочерние страницы которой нужно получить. По умолчанию 0.
  
  selected int|stringЗначение варианта, который должен быть выбран. По умолчанию 0.
  
  echo bool|intВыводить или возвращать сгенерированную разметку. Принимает 0, 1 или их логические эквиваленты. По умолчанию 1.
  
  name stringЗначение атрибута 'name' элемента select.
  
  По умолчанию 'page_id'.
  
  id stringЗначение атрибута 'id' элемента select.
  
  class stringЗначение атрибута 'class' элемента select. По умолчанию: отсутствует.
  
  По умолчанию — значение $name.
  
  show_option_none stringТекст, отображаемый для варианта «страницы не выбраны». По умолчанию пусто (не отображается).
  
  show_option_no_change stringТекст, отображаемый для варианта «без изменений». По умолчанию пусто (не отображается).
  
  option_none_value stringЗначение, используемое, когда страница не выбрана.
  
  value_field stringПоле записи, используемое для заполнения атрибута 'value' элементов option. Принимает любое допустимое поле записи. По умолчанию 'ID'.

## Возвращаемое значение

`string`

## Исходный код

Файл: `wp-includes/post-template.php:1201`

```php
function wp_dropdown_pages( $args = '' ) {
	$defaults = array(
		'depth'                 => 0,
		'child_of'              => 0,
		'selected'              => 0,
		'echo'                  => 1,
		'name'                  => 'page_id',
		'id'                    => '',
		'class'                 => '',
		'show_option_none'      => '',
		'show_option_no_change' => '',
		'option_none_value'     => '',
		'value_field'           => 'ID',
	);

	$parsed_args = wp_parse_args( $args, $defaults );

	$pages  = get_pages( $parsed_args );
	$output = '';
	// Back-compat with old system where both id and name were based on $name argument.
	if ( empty( $parsed_args['id'] ) ) {
		$parsed_args['id'] = $parsed_args['name'];
	}

	if ( ! empty( $pages ) ) {
		$class = '';
		if ( ! empty( $parsed_args['class'] ) ) {
			$class = " class='" . esc_attr( $parsed_args['class'] ) . "'";
		}

		$output = "<select name='" . esc_attr( $parsed_args['name'] ) . "'" . $class . " id='" . esc_attr( $parsed_args['id'] ) . "'>\n";
		if ( $parsed_args['show_option_no_change'] ) {
			$output .= "\t<option value=\"-1\">" . $parsed_args['show_option_no_change'] . "</option>\n";
		}
		if ( $parsed_args['show_option_none'] ) {
			$output .= "\t<option value=\"" . esc_attr( $parsed_args['option_none_value'] ) . '">' . $parsed_args['show_option_none'] . "</option>\n";
		}
		$output .= walk_page_dropdown_tree( $pages, $parsed_args['depth'], $parsed_args );
		$output .= "</select>\n";
	}

	/**
	 * Filters the HTML output of a list of pages as a dropdown.
	 *
	 * @since 2.1.0
	 * @since 4.4.0 `$parsed_args` and `$pages` added as arguments.
	 *
	 * @param string    $output      HTML output for dropdown list of pages.
	 * @param array     $parsed_args The parsed arguments array. See wp_dropdown_pages()
	 *                               for information on accepted arguments.
	 * @param WP_Post[] $pages       Array of the page objects.
	 */
	$html = apply_filters( 'wp_dropdown_pages', $output, $parsed_args, $pages );

	if ( $parsed_args['echo'] ) {
		echo $html;
	}

	return $html;
}
```

## История изменений

- 4.3.0 — The $class argument was added.
- 4.2.0 — The $value_field argument was added.
- 2.1.0 — Introduced.

## Связанные

Использует: [`walk_page_dropdown_tree`](https://chugunov.pro/api-wordpress/functions/walk_page_dropdown_tree/), [`get_pages`](https://chugunov.pro/api-wordpress/functions/get_pages/), [`esc_attr`](https://chugunov.pro/api-wordpress/functions/esc_attr/), [`wp_parse_args`](https://chugunov.pro/api-wordpress/functions/wp_parse_args/), [`apply_filters`](https://chugunov.pro/api-wordpress/functions/apply_filters/).
Используется в: [`page_attributes_meta_box`](https://chugunov.pro/api-wordpress/functions/page_attributes_meta_box/), `WP_Posts_List_Table::inline_edit`, `WP_Customize_Control::render_content`.

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/wp_dropdown_pages/
