Функция get_queried_object() в WordPress: описание, примеры использования

Функция 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!

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *