get_pages

Позволяет изменить список извлеченных страниц
Хук WordPress
INT 2.1.0
WordPress Icon
Содержание
  1. Описание хука
  2. Примеры использования
  3. Фильтрование списка страниц
  4. Сортировка страниц
  5. Исключение определенных страниц
  6. Включение определенных страниц
  7. Фильтрование страниц по мета-ключу и мета-значению
  8. Вопросы и ответы
  9. Как получить список страниц с помощью хука get_pages?
  10. Как отсортировать список страниц, полученный с помощью хука get_pages?
  11. Как исключить определенные страницы из списка, полученного с помощью хука get_pages?
  12. Как включить только определенные страницы в список, полученный с помощью хука get_pages?
  13. Как получить только дочерние страницы определенной страницы с помощью хука get_pages?
  14. Как получить только страницы с определенным мета ключом и значением с помощью хука get_pages?
  15. Как получить только страницы определенного автора с помощью хука get_pages?
  16. Как получить только страницы определенного типа с помощью хука get_pages?
  17. Как получить только опубликованные страницы с помощью хука get_pages?
  18. Связанные элементы

Описание хука

Хук «get_pages» позволяет определить и изменить список полученных страниц.

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

apply_filters( 'get_pages', WP_Post[] $pages, array $parsed_args )

Где:

  • $pages (WP_Post[]) — Массив объектов страниц.
  • $parsed_args (array) — Массив аргументов функции get_pages().
  • $pages (WP_Post[]) — Массив объектов страниц.
  • $parsed_args (array) — Массив аргументов функции get_pages().
  • $args (array или string) — Массив или строка аргументов для получения страниц.
  • $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’.
<?php
/**
 * Пример использования хука get_pages.
 *
 * @param WP_Post[] $pages      Массив объектов страниц.
 * @param array     $parsed_args Массив аргументов функции get_pages().
 * @return WP_Post[] Измененный массив объектов страниц.
 */
function custom_get_pages( $pages, $parsed_args ) {
    // Ваш код обработки страниц
    return $pages;
}
add_filter( 'get_pages', 'custom_get_pages', 10, 2 );
?>

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

Фильтрование списка страниц


function filter_pages($pages, $parsed_args) {
    // Ваш код для фильтрации списка страниц
    return $pages;
}
add_filter('get_pages', 'filter_pages', 10, 2);

В данном примере мы создаем функцию «filter_pages», которая принимает два аргумента: $pages (массив объектов страниц) и $parsed_args (массив аргументов функции get_pages()). Внутри этой функции вы можете добавить свою логику фильтрации списка страниц и вернуть отфильтрованный массив.

Сортировка страниц


$args = array(
    'sort_order' => 'DESC',
    'sort_column' => 'post_date'
);
$pages = get_pages($args);

В данном примере мы используем аргументы ‘sort_order’ и ‘sort_column’ для сортировки страниц. Значение ‘sort_order’ определяет порядок сортировки (в данном случае — по убыванию), а значение ‘sort_column’ указывает, по какому столбцу сортировать (в данном случае — по дате публикации).

Исключение определенных страниц


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

В данном примере мы используем аргумент ‘exclude’ для исключения определенных страниц из списка. Значение ‘exclude’ — это массив идентификаторов страниц, которые нужно исключить.

Включение определенных страниц


$args = array(
    'include' => array(4, 5, 6)
);
$pages = get_pages($args);

В данном примере мы используем аргумент ‘include’ для включения определенных страниц в список. Значение ‘include’ — это массив идентификаторов страниц, которые нужно включить.

Фильтрование страниц по мета-ключу и мета-значению


$args = array(
    'meta_key' => 'color',
    'meta_value' => 'blue'
);
$pages = get_pages($args);

В данном примере мы используем аргументы ‘meta_key’ и ‘meta_value’ для фильтрации страниц по определенному мета-ключу и его значению. Значение ‘meta_key’ указывает на имя мета-ключа, а значение ‘meta_value’ — на значение, которое должно соответствовать мета-ключу.

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

Как получить список страниц с помощью хука get_pages?

Для получения списка страниц с помощью хука get_pages необходимо использовать функцию get_pages(). Эта функция принимает аргументы для настройки запроса и возвращает массив объектов страниц.

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

add_filter( 'get_pages', 'my_custom_get_pages', 10, 2 );
function my_custom_get_pages( $pages, $parsed_args ) {
    // Ваш код обработки списка страниц
    return $pages;
}

Как отсортировать список страниц, полученный с помощью хука get_pages?

Для сортировки списка страниц, полученного с помощью хука get_pages, можно использовать аргументы sort_order и sort_column. Аргумент sort_order определяет порядок сортировки (ASC — по возрастанию, DESC — по убыванию), а аргумент sort_column определяет по какому столбцу сортировать (post_author, post_date, post_title и т.д.).

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

add_filter( 'get_pages', 'my_custom_get_pages', 10, 2 );
function my_custom_get_pages( $pages, $parsed_args ) {
    $parsed_args['sort_order'] = 'DESC';
    $parsed_args['sort_column'] = 'post_date';
    $pages = get_pages( $parsed_args );
    return $pages;
}

Как исключить определенные страницы из списка, полученного с помощью хука get_pages?

Для исключения определенных страниц из списка, полученного с помощью хука get_pages, можно использовать аргумент exclude. Аргумент exclude принимает массив идентификаторов страниц, которые необходимо исключить из списка.

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

add_filter( 'get_pages', 'my_custom_get_pages', 10, 2 );
function my_custom_get_pages( $pages, $parsed_args ) {
    $parsed_args['exclude'] = array( 1, 2, 3 ); // Исключаем страницы с ID 1, 2 и 3
    $pages = get_pages( $parsed_args );
    return $pages;
}

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

Чтобы включить только определенные страницы в список, полученный с помощью хука get_pages, можно использовать аргумент «include». В этом аргументе нужно указать массив с ID страниц, которые нужно включить.


$args = array(
    'include' => array(2, 5, 9) // Включить только страницы с ID 2, 5 и 9
);
$pages = get_pages($args);

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

Чтобы получить только дочерние страницы определенной страницы с помощью хука get_pages, нужно использовать аргумент «child_of». В этом аргументе нужно указать ID родительской страницы.


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

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

Чтобы получить только страницы с определенным мета ключом и значением с помощью хука get_pages, нужно использовать аргументы «meta_key» и «meta_value». В аргументе «meta_key» указывается ключ мета данных, а в аргументе «meta_value» — значение, которое должно быть у этого ключа.


$args = array(
    'meta_key' => 'color', // Получить страницы с мета ключом "color"
    'meta_value' => 'blue' // и значением "blue"
);
$pages = get_pages($args);

Как получить только страницы определенного автора с помощью хука get_pages?

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


$args = array(
    'authors' => '1,2,3' // Здесь указываются ID авторов, разделенные запятой
);
$pages = get_pages( $args );

Как получить только страницы определенного типа с помощью хука get_pages?

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


$args = array(
    'post_type' => 'product' // Здесь указывается тип страницы
);
$pages = get_pages( $args );

Как получить только опубликованные страницы с помощью хука get_pages?

Для получения только опубликованных страниц можно использовать параметр post_status в хуке get_pages. В этом случае будут возвращены только страницы со статусом «publish».


$args = array(
    'post_status' => 'publish'
);
$pages = get_pages( $args );

Хук get_pages предоставляет возможность фильтрации списка страниц в WordPress. С его помощью можно получить страницы определенного автора, определенного типа или только опубликованные страницы. Этот хук является мощным инструментом для разработчиков WordPress, позволяющим получать и обрабатывать нужные страницы с помощью простого и гибкого кода.

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

  • Функция get_pages(): возвращает список страниц в виде объектов WP_Post.
  • Функция apply_filters(): применяет фильтры к полученному списку страниц.
  • Класс WP_Post: представляет отдельную страницу в WordPress.
  • Аргумент $parsed_args: массив аргументов, переданных в функцию get_pages().
Обсуждение