Функция PARENT_DROPDOWN() в WordPress
Функция parent_dropdown() используется для создания выпадающего списка страниц, которые являются дочерними для указанной родительской страницы в WordPress. Этот список может быть полезен, например, при выборе родительской страницы для новой страницы.
Основная информация
- Версия: 1.5.0
- Производительность: 1 раз — 0.001482 сек (очень медленно) | 50000 раз — 52 сек (очень медленно)
- Хуки: Не используются.
Возвращаемое значение
Функция возвращает:
nullилиfalse— если выполняется успешно, илиfalse, если у страницы нет дочерних элементов.
Использование функции
Функция вызывается следующим образом:
parent_dropdown( $default_page, $parent_page, $level, $post );
Параметры:
- $default_page (int): ID страницы, которая будет выбрана по умолчанию.
- $parent_page (int): ID родительской страницы.
- $level (int): Уровень вложенности страниц.
- $post (int|WP_Post): ID поста или объект WP_Post. По умолчанию:
null.
Пример использования
Вывод выпадающего списка дочерних страниц
Вот пример кода, который выводит выпадающий список дочерних страниц для страницы с ID 280, где страница с ID 25 будет выбрана по умолчанию:
// Для работы на фронте нужно раскомментировать следующую строку:
// require_once ABSPATH .'wp-admin/includes/template.php';
?>
Результат:
Примечания
- Глобальная переменная:
$wpdb— это объект абстракции базы данных WordPress.
Внесенные изменения
- С версии 1.5.0: Функция была введена.
- С версии 4.4.0: Добавлен аргумент
$post.
Код функции PARENT_DROPDOWN()
Вот реализация функции parent_dropdown() в файле wp-admin/includes/template.php:
function parent_dropdown( $default_page = 0, $parent_page = 0, $level = 0, $post = null ) {
global $wpdb;
$post = get_post( $post );
$items = $wpdb->get_results(
$wpdb->prepare(
"SELECT ID, post_parent, post_title
FROM $wpdb->posts
WHERE post_parent = %d AND post_type = 'page'
ORDER BY menu_order",
$parent_page
)
);
if ( $items ) {
foreach ( $items as $item ) {
// Страница не может быть родителем самой себя.
if ( $post && $post->ID && (int) $item->ID === $post->ID ) {
continue;
}
$pad = str_repeat( ' ', $level * 3 );
$selected = selected( $default_page, $item->ID, false );
echo "nt';
parent_dropdown( $default_page, $item->ID, $level + 1 );
}
} else {
return false;
}
}
Связанные функции
- Функция
_dropdown()— для создания списка опций. - Функция
page_template_dropdown()— для выбора шаблона страницы. - Функция
wp_dropdown_roles()— для выбора ролей пользователей.
Другие полезные функции для работы со страницами:
- get_all_page_ids() — получение всех ID страниц.
- get_page_by_path() — получение страницы по её пути.
- get_page_children() — получение дочерних страниц.
- wp_dropdown_pages() — выпадающий список всех страниц.
Эта функция и ее использование могут значительно упростить работу с вложенными страницами в вашей системе управления контентом на WordPress.