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

Функция GET_PAGES() в WordPress

Функция get_pages() используется для получения данных страниц (или данных иерархических типов записей) в виде массива объектов страниц. Результаты кэшируются, чтобы ускорить последующие запросы.

Основная информация

  • Для использования этой функции необходимо указывать параметр post_type, чтобы получить данные о пользовательских типах записей.
  • Функция работает только с иерархическими типами записей. Если ввести post_type = post, функция вернет значение false.
  • Используйте get_posts(), чтобы получить те же данные для неиерархических типов записей.
  • Для отображения названий страниц в виде дерева используйте wp_list_pages().

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

Функция возвращает массив объектов типа WP_Post[] или false, если указанный тип записи не иерархический или если указанный статус записи не поддерживается.

Шаблон использования

$pages = get_pages( [
    'sort_order'   => 'ASC',
    'sort_column'  => 'post_title',
    'hierarchical' => 1,
    'exclude'      => '',
    'include'      => '',
    'meta_key'     => '',
    'meta_value'   => '',
    'authors'      => '',
    'child_of'     => 0,
    'parent'       => -1,
    'exclude_tree' => '',
    'number'       => '',
    'offset'       => 0,
    'post_type'    => 'page',
    'post_status'  => 'publish',
] );

foreach( $pages as $post ){
    setup_postdata( $post );
    // здесь выводим данные страницы
}

wp_reset_postdata();

Здесь $pages будет содержать массив страниц, осуществленный согласно заданным параметрам.

Параметры

Обязательные параметры

  • post_type (string): Тип записи для запроса. По умолчанию - 'page'.

Дополнительные параметры

  • post_status (string/array): Статусы записей для включения, например, 'publish,private'. По умолчанию - 'publish'.

  • exclude (string/array): Массив ID страниц для исключения. Можно указать как строку: exclude=3,7,31. По умолчанию - пустой массив.

  • exclude_tree (string/array): Массив ID страниц для исключения. Исключаются все дочерние страницы указанного ID.

  • include (array/string): Массив ID страниц для включения. Можно указать как строку: include=45,63,78,94,128,140. Если указать этот параметр, другие параметры (child_of, parent, exclude) игнорируются.

  • child_of (int): ID страницы, дочерние и внучатые страницы которой нужно получить.

  • parent (int/array): ID родительской страницы. Если указать множество ID, необходимо использовать массив.

  • hierarchical (true/false): Определяет, возвращать ли страницы иерархически. По умолчанию - true.

  • meta_key (string) И meta_value (string): Условия для выборки страниц по мета-ключу и мета-значению.

  • authors (string): Список ID авторов, разделенный запятыми.

  • number (int): Количество страниц для возвращения. По умолчанию - -1 (без ограничений).

  • offset (int): Количество страниц для пропуска перед возвращением. Требует параметра number.

  • sort_column (string): Столбец, по которому необходимо сортировать страницы. Можно указать несколько столбцов через запятую.

  • sort_order (string): Направление сортировки. Может быть 'ASC' (по возрастанию) или 'DESC' (по убыванию). По умолчанию - 'ASC'.

Примеры использования

Пример 1: Вызов страниц в выпадающем списке

Пример 2: Отображение дочерних страниц

$mypages = get_pages( array( 'child_of' => $post->ID, 'sort_column' => 'post_date', 'sort_order' => 'desc' ) );

foreach( $mypages as $page ) {      
    $content = $page->post_content;

    // Пропуск страниц без контента
    if ( ! $content ) continue;

    $content = apply_filters( 'the_content', $content );
    ?>
    

post_title; ?>

Пример 3: Получение страниц с определённым шаблоном

$pages = get_pages( array( 
    'meta_key'     => '_wp_page_template', 
    'meta_value'   => 'page-tpl.php', 
    'hierarchical' => 0
));

foreach( $pages as $page ){
    echo "$page->post_title 
"; }

Заключение

Функция get_pages() очень полезна для работы с иерархическими данными в WordPress. Она позволяет гибко настраивать выборку страниц и упрощает взаимодействие с контентом на сайте. Используя параметры этой функции, вы сможете извлекать только ту информацию, которая вам нужна.

Leave a Reply

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