Функция get_queried_object() в WordPress
В этой статье мы рассмотрим функцию get_queried_object()
, которая используется в WordPress для получения информации о текущем запрашиваемом объекте.
Что такое get_queried_object?
get_queried_object()
— это функция, которая возвращает объект, о котором делается запрос. Это может быть информация о посте, пользователе, таксономии и других элементах. Она работает как обертка для метода WP_Query::get_queried_object()
.
Производительность
Эта функция работает очень быстро. Например:
- 1 раз — 0.000026 сек (очень быстро)
- 50000 раз — 0.06 сек (практически мгновенно)
Возвращаемое значение
Функция может вернуть один из следующих типов объектов:
WP_Term
(таксономия)WP_Post_Type
(тип поста)WP_Post
(пост)WP_User
(пользователь)null
(если объект не найден)
Как использовать get_queried_object
Давайте посмотрим, как использовать эту функцию на практике. Чтобы получить текущий запрашиваемый объект, просто вызовите:
$queried_object = get_queried_object();
Примеры использования
1. Объект автора
Если вызвать функцию на странице постов автора, мы получим объект пользователя:
$queried_object = get_queried_object();
print_r($queried_object);
/
Результат будет:
WP_User Object
(
[data] => stdClass Object
(
[ID] => 1
[user_login] => kama
[user_email] => [email protected]
...
)
)
/
2. Объект таксономии (метки)
На странице меток функция вернет информацию о текущей метке:
$queried_object = get_queried_object();
print_r($queried_object);
/
Результат будет:
stdClass Object
(
[term_id] => 452
[name] => Tag
...
)
/
3. Объект поста
При вызове функции на странице конкретного поста мы получим информацию о посте:
$queried_object = get_queried_object();
print_r($queried_object);
/
Результат будет:
WP_Post Object
(
[ID] => 2762
[post_title] => Post Title
...
)
/
4. Объект архива типа поста
Когда мы находимся на архивной странице кастомного типа поста, функция возвращает информацию о нем:
$queried_object = get_queried_object();
print_r($queried_object);
/
Результат будет:
stdClass Object
(
[post_type] => custom_type
[labels] => stdClass Object
(
[name] => Custom Type
...
)
)
/
5. Получение ID поста на странице одиночного поста
Если вам нужен только ID поста:
$post_id = get_queried_object()->ID;
echo $post_id;
Примечания
- Функция работает с глобальным объектом
WP_Query
, который предоставляет информацию о текущем запросе WordPress.
Изменения
Функция была внедрена в версию WordPress 3.1.0.
Исходный код функции
Для тех, кто интересуется внутренним устройством, вот реализация функции:
function get_queried_object() {
global $wp_query;
return $wp_query->get_queried_object();
}
Этот код показывает, как функция использует глобальный объект $wp_query
, чтобы получить запрашиваемый объект.
Теперь вы знаете, что такое get_queried_object()
, как она работает и как ее использовать в своих проектах на WordPress!