get_pages()

Извлекает массив страниц (или элементов иерархического типа записей)
Функция WordPress
INT 1.5.0
WordPress Icon

Описание функции

Функция get_pages() используется для получения массива страниц (или иерархических элементов типа записи) в WordPress.

Функция возвращает массив страниц или иерархических элементов типа записи в WordPress. Если указанный тип записи не является иерархическим или указанный статус не поддерживается типом записи, функция вернет логическое значение false.

Использование

get_pages( array|string $args = array() ): WP_Post[]|false

Функция get_pages() принимает один необязательный параметр $args, который может быть массивом или строкой с аргументами для получения страниц.

  • child_of (int): ID страницы, для которой нужно вернуть дочерние и внуковские страницы. Значение по умолчанию: 0.
  • sort_order (string): Порядок сортировки полученных страниц. Принимает значения ‘ASC’ (по возрастанию) или ‘DESC’ (по убыванию). Значение по умолчанию: ‘ASC’.
  • sort_column (string): Колонки, по которым нужно сортировать страницы, разделенные запятой. Принимает значения ‘post_author’, ‘post_date’, ‘post_title’, ‘post_name’, ‘post_modified’, ‘menu_order’, ‘post_modified_gmt’, ‘post_parent’, ‘ID’, ‘rand’, ‘comment_count’. Значение по умолчанию: ‘post_title’.
  • hierarchical (bool): Возвращать страницы иерархически. Если значение false и значение child_of также false, оба аргумента будут проигнорированы. Значение по умолчанию: true.
  • exclude (int[]): Массив ID страниц, которые нужно исключить.
  • include (int[]): Массив ID страниц, которые нужно включить. Не может использоваться с child_of, parent, exclude, meta_key, meta_value или hierarchical.
  • meta_key (string): Включать только страницы с указанным мета-ключом.
  • meta_value (string): Включать только страницы с указанным мета-значением. Требуется указать meta_key.
  • authors (string): Список ID авторов, разделенных запятой.
  • parent (int): ID страницы, для которой нужно вернуть прямых потомков. Значение по умолчанию: -1.
  • exclude_tree (string|int[]): Строка или массив ID страниц, которые нужно исключить.
  • number (int): Количество страниц для возврата. Значение по умолчанию: 0 (все страницы).
  • offset (int): Количество страниц для пропуска перед возвратом. Требуется указать number. Значение по умолчанию: 0.
  • post_type (string): Тип записи для запроса. Значение по умолчанию: ‘page’.
  • post_status (string|array): Список статусов записей для включения. Значение по умолчанию: ‘publish’.

Функция возвращает массив страниц или иерархических элементов типа записи в WordPress. Если указанный тип записи не является иерархическим или указанный статус не поддерживается типом записи, функция вернет логическое значение false.


$args = array(
  'child_of' => 10,
  'sort_order' => 'ASC',
  'sort_column' => 'post_title',
  'hierarchical' => true,
  'exclude' => array(5, 8),
  'include' => array(3, 6),
  'meta_key' => 'featured',
  'meta_value' => 'yes',
  'authors' => '1,2,3',
  'parent' => 15,
  'exclude_tree' => '20,21',
  'number' => 5,
  'offset' => 0,
  'post_type' => 'page',
  'post_status' => array('publish', 'draft')
);
$pages = get_pages($args);
foreach ($pages as $page) {
  // Вывод информации о странице
  echo 'ID: ' . $page->ID . '<br>';
  echo 'Заголовок: ' . $page->post_title . '<br>';
  echo 'Автор: ' . $page->post_author . '<br>';
  echo 'Дата: ' . $page->post_date . '<br>';
  echo 'Содержимое: ' . $page->post_content . '<br>';
}

В приведенном выше примере кода используются все возможные параметры функции get_pages(). Создается массив $args с различными параметрами для получения страниц. Затем вызывается функция get_pages() с этим массивом аргументов, и результат сохраняется в переменную $pages. Затем происходит цикл по массиву $pages и выводится информация о каждой странице.

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

Получение всех страниц без ограничений


$args = array(
    'post_type' => 'page',
    'post_status' => 'publish',
    'number' => 0
);
$pages = get_pages($args);
foreach ($pages as $page) {
    // Вывод информации о странице
    echo $page->post_title;
    echo $page->post_content;
}

В данном примере мы используем функцию get_pages() без ограничений. Мы передаем массив аргументов, где указываем тип поста ('post_type' => 'page'), статус поста ('post_status' => 'publish') и количество страниц для получения ('number' => 0). Функция возвращает массив объектов WP_Post, представляющих страницы. Мы проходимся по каждой странице в цикле и выводим информацию о ней.

Получение дочерних страниц определенной страницы


$args = array(
    'post_type' => 'page',
    'post_status' => 'publish',
    'child_of' => 10
);
$pages = get_pages($args);
foreach ($pages as $page) {
    // Вывод информации о странице
    echo $page->post_title;
    echo $page->post_content;
}

В этом примере мы получаем дочерние страницы определенной страницы с ID 10. Мы передаем аргумент 'child_of' => 10 в массив параметров. Функция вернет массив дочерних страниц этой страницы, которые имеют тип поста ‘page’ и статус ‘publish’.

Получение страниц с сортировкой по дате


$args = array(
    'post_type' => 'page',
    'post_status' => 'publish',
    'orderby' => 'post_date',
    'order' => 'DESC'
);
$pages = get_pages($args);
foreach ($pages as $page) {
    // Вывод информации о странице
    echo $page->post_title;
    echo $page->post_content;
}

В данном примере мы получаем страницы с сортировкой по дате в порядке убывания. Мы передаем аргументы 'orderby' => 'post_date' и 'order' => 'DESC' в массив параметров. Функция вернет массив страниц, отсортированных по дате публикации в порядке от новых к старым.

Получение страниц с определенными мета-ключами и значениями


$args = array(
    'post_type' => 'page',
    'post_status' => 'publish',
    'meta_key' => 'featured',
    'meta_value' => 'yes'
);
$pages = get_pages($args);
foreach ($pages as $page) {
    // Вывод информации о странице
    echo $page->post_title;
    echo $page->post_content;
}

В этом примере мы получаем страницы, у которых есть мета-ключ ‘featured’ со значением ‘yes’. Мы передаем аргументы 'meta_key' => 'featured' и 'meta_value' => 'yes' в массив параметров. Функция вернет массив страниц, которые удовлетворяют этим условиям.

Получение страниц с определенными авторами и статусами


$args = array(
    'post_type' => 'page',
    'post_status' => array('publish', 'draft'),
    'authors' => '1,2,3'
);
$pages = get_pages($args);
foreach ($pages as $page) {
    // Вывод информации о странице
    echo $page->post_title;
    echo $page->post_content;
}

В данном примере мы получаем страницы с определенными авторами и статусами. Мы передаем аргументы 'post_status' => array('publish', 'draft') и 'authors' => '1,2,3' в массив параметров. Функция вернет массив страниц, которые имеют статус ‘publish’ или ‘draft’ и авторами которых являются пользователи с ID 1, 2 или 3.

Вопросы и ответы

Как получить список всех страниц?

Для получения списка всех страниц в WordPress можно использовать функцию get_pages(). Она возвращает массив страниц или иерархических элементов типа записи.

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


$pages = get_pages();
if ( ! empty( $pages ) ) {
    foreach ( $pages as $page ) {
        echo $page->post_title;
    }
}

Как отсортировать страницы по дате создания?

Для сортировки страниц по дате создания можно использовать параметр sort_column функции get_pages(). По умолчанию страницы сортируются по заголовку.

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


$args = array(
    'sort_column' => 'post_date',
    'sort_order' => 'DESC',
);
$pages = get_pages( $args );
if ( ! empty( $pages ) ) {
    foreach ( $pages as $page ) {
        echo $page->post_title;
    }
}

Как отсортировать страницы по заголовку?

Для сортировки страниц по заголовку можно использовать параметр sort_column функции get_pages(). По умолчанию страницы сортируются по заголовку в порядке возрастания.

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


$args = array(
    'sort_column' => 'post_title',
    'sort_order' => 'ASC',
);
$pages = get_pages( $args );
if ( ! empty( $pages ) ) {
    foreach ( $pages as $page ) {
        echo $page->post_title;
    }
}

Как получить только дочерние страницы определенной страницы?

Для получения только дочерних страниц определенной страницы в WordPress можно использовать функцию get_pages() с параметром child_of. В этом параметре нужно указать ID родительской страницы, для которой нужно получить дочерние страницы.


$args = array(
    'child_of' => 10, // ID родительской страницы
);
$child_pages = get_pages( $args );

Как исключить определенные страницы из результатов?

Если вам нужно исключить определенные страницы из результатов, вы можете использовать параметр exclude в функции get_pages(). В этом параметре нужно указать массив ID страниц, которые нужно исключить.


$args = array(
    'exclude' => array( 5, 8, 12 ), // Массив ID страниц для исключения
);
$pages = get_pages( $args );

Как включить только определенные страницы в результаты?

Если вам нужно включить только определенные страницы в результаты, вы можете использовать параметр include в функции get_pages(). В этом параметре нужно указать массив ID страниц, которые нужно включить.


$args = array(
    'include' => array( 2, 4, 7 ), // Массив ID страниц для включения
);
$pages = get_pages( $args );

Как получить страницы с определенным мета-ключом и значением?

Функция get_pages() позволяет получить массив страниц (или элементов иерархического типа записей) с определенным мета-ключом и значением. Для этого необходимо использовать параметры meta_key и meta_value.


$args = array(
    'meta_key' => 'my_meta_key',
    'meta_value' => 'my_meta_value'
);
$pages = get_pages($args);

Как получить страницы, созданные определенными авторами?

Для получения страниц, созданных определенными авторами, можно использовать параметр authors. В него необходимо передать список ID авторов, разделенных запятыми.


$args = array(
    'authors' => '1,2,3'
);
$pages = get_pages($args);

Как получить только прямых потомков определенной страницы?

Для получения только прямых потомков определенной страницы необходимо использовать параметр parent. В него необходимо передать ID родительской страницы.


$args = array(
    'parent' => 10
);
$pages = get_pages($args);

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

Связанные элементы

  • Функция get_page(): возвращает объект страницы по указанному идентификатору.
  • Функция get_page_by_path(): возвращает объект страницы по указанному пути.
  • Функция get_page_by_title(): возвращает объект страницы по указанному заголовку.
  • Функция get_page_children(): возвращает массив дочерних страниц для указанной страницы.
  • Функция get_page_link(): возвращает URL страницы по указанному идентификатору.
  • Функция get_page_uri(): возвращает URI страницы по указанному идентификатору.
  • Функция get_page_template(): возвращает путь к шаблону страницы.
  • Функция get_page_templates(): возвращает массив доступных шаблонов страниц.
  • Хук pre_get_pages: позволяет изменить параметры запроса для функции get_pages.
  • Класс WP_Query: позволяет создавать и выполнять пользовательские запросы к базе данных WordPress.
Обсуждение