Функция get_queried_object();
…эта функция в отработке, скажем так, получает информацию о текущем объекте запроса – как бы сводная информация о посте, рубриках, метках, произвольных типах… (выборка информации).
Что интересно: в любом текущем запросе функция получает различные данные для разных типов страниц, например, возвратит данные:
- если на странице записи, возвращает объект текущего поста WP_Post;
- …страница автора публикации – вернется объект WP_User (сводная информация о пользователе);
- … в категории – вернется объект WP_Term или другого термина;
- произвольный тип записи – вернется объект WP_Post_Type:
Wrapper for (обертка для) WP_Query::get_queried_object()
Функция get_queried_object()
Функция отрабатывается (вызываться) самим WordPress, в следующую очередь, т.е. после того, когда данные текущей страницы определены.
Если пытаться вызывать функцию ранее своей очереди – отработка кода с использованием функции get_queried_object()
БУДЕТ как правило нарушена ! из-за свойства $wp_query->queried_object
вызов этой функции
…обусловит свойство $wp_query->queried_object
(если его нет). Запрос сбрасывается при КАЖДОМ НОВОМ вызове WP_Query::query()
/ new WP_Query() либо get_posts()
/…
Таким образом очередной вызов функции – СНОВА отдаст свойства $wp_query->queried_object
(прежние значения, либо новые, если переменные WP_Query были изменены).
моменты (очередность) вызовов могут отличаться для разных типов страниц:
Следует знать о том, что функции get_queried_object() / get_post() / global $post
имеют свойства возвращать различные данные.
Предположим, на сайте есть страница “Блог”, на которой сформирован вывод архива записей блога (постов), – если выполнить запрос get_queried_object()
вернется “полноценная страница” блога (лента и пр.) – итоговое значение функции остается неизменным от контента…
…а если же использовать get_post()
то в этом случае вернется текущая запись из цикла!
get_queried_object()
– содержит данные всей текущей страницы, тогда как get_post()
или global $post
– конкретику, если можно так выразиться!
функция get_queried_object() возвращает:
WP_Term/ WP_Post_Type / WP_Post / WP_User|null
использование:
$queried_object = get_queried_object();
Пример работы функции описан в этом посте.
Код функции get_queried_object()
– Source – в ядре cms WordPress 6.1 по пути wp-includes/query.php
Создание… продвижение сайтов; помощь по сайту, настройки, сопровождение и пр. – студия ATs media запросто с WordPress
mihalica.ru !