Функция PARENT_DROPDOWN() в WordPress: описание, параметры и примеры использования

Функция 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.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *