Функция 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. Она позволяет гибко настраивать выборку страниц и упрощает взаимодействие с контентом на сайте. Используя параметры этой функции, вы сможете извлекать только ту информацию, которая вам нужна.