Функция get_queried_object()
в WordPress позволяет получить текущий объект запроса, который является темой текущей страницы. Этот объект может быть разным в зависимости от типа страницы, на которой мы находимся — это может быть объект записи, таксономии, пользователя или типа записи.
Функция get_queried_object()
является оберткой метода WP_Query::get_queried_object()
, и она помогает получить детальную информацию о текущем объекте для последующего использования в шаблонах и других функциях WordPress.
get_queried_object(): WP_Term|WP_Post_Type|WP_Post|WP_User|null
Возвращаемое значение
- WP_Term — объект таксономии (например, категория или метка).
- WP_Post_Type — объект типа записи (например, страницы архива типов записей).
- WP_Post — объект записи (например, отдельная запись или страница).
- WP_User — объект пользователя (например, автор страницы).
- null — если функция не может определить объект запроса.
Пример 1: Получение объекта категории на странице архива категории
Этот пример показывает, как получить объект текущей категории и отобразить его имя и описание.
if (is_category()) {
$category = get_queried_object();
echo '<h1>' . esc_html($category->name) . '</h1>';
echo '<p>' . esc_html($category->description) . '</p>';
}
Результат: На странице архива категории будет отображено название и описание текущей категории.
Пример 2: Получение объекта автора на странице архива автора
На странице архива автора функция вернет объект WP_User
текущего пользователя, что позволяет получить и вывести информацию об авторе.
if (is_author()) {
$author = get_queried_object();
echo '<h2>Автор: ' . esc_html($author->display_name) . '</h2>';
echo '<p>Email: ' . esc_html($author->user_email) . '</p>';
}
Результат: На странице автора будет отображено имя автора и его email.
Пример 3: Получение ID страницы поста на отдельной записи
На страницах отдельных записей можно использовать функцию для получения объекта записи и её ID.
if (is_singular()) {
$post = get_queried_object();
echo '<h2>Идентификатор записи: ' . esc_html($post->ID) . '</h2>';
}
Результат: На странице поста будет выведен ID текущей записи.
Пример 4: Получение объекта метки на странице меток
При просмотре страницы метки можно получить объект WP_Term
, содержащий информацию о текущей метке.
if (is_tag()) {
$tag = get_queried_object();
echo '<h1>Метка: ' . esc_html($tag->name) . '</h1>';
}
Результат: На странице метки будет выведено имя текущей метки.
Пример 5: Получение объекта типа записи на странице архива типов записей
На странице архива типа записи можно получить объект типа записи и отобразить его мета-данные.
if (is_post_type_archive('product')) {
$post_type = get_queried_object();
echo '<h1>Архив для: ' . esc_html($post_type->labels->name) . '</h1>';
}
Результат: На странице архива типа записи «product» будет выведено название типа записи.
Заключение
Функция get_queried_object()
является мощным инструментом для работы с объектами текущего запроса в WordPress. Она возвращает различные объекты в зависимости от контекста страницы, что позволяет гибко использовать её в шаблонах и при построении кастомных функций.