WP_Query

Класс WordPress Query
Класс WordPress
INT 1.5.0
WordPress Icon
Содержание
  1. Описание класса
  2. Методы
  3. fill_query_vars()
  4. generate_cache_key()
  5. generate_postdata()
  6. get()
  7. get_posts()
  8. get_queried_object()
  9. get_queried_object_id()
  10. get_search_stopwords()
  11. have_comments()
  12. have_posts()
  13. init()
  14. init_query_flags()
  15. is_404()
  16. is_archive()
  17. is_attachment()
  18. is_author()
  19. is_category()
  20. is_comments_popup()
  21. is_comment_feed()
  22. is_date()
  23. is_day()
  24. is_embed()
  25. is_favicon()
  26. is_feed()
  27. is_front_page()
  28. is_home()
  29. is_main_query()
  30. is_month()
  31. is_page()
  32. is_paged()
  33. is_post_type_archive()
  34. is_preview()
  35. is_privacy_policy()
  36. is_robots()
  37. is_search()
  38. is_single()
  39. is_singular()
  40. is_tag()
  41. is_tax()
  42. is_time()
  43. is_trackback()
  44. is_year()
  45. lazyload_comment_meta()
  46. lazyload_term_meta()
  47. next_comment()
  48. next_post()
  49. parse_order()
  50. parse_orderby()
  51. parse_query()
  52. parse_query_vars()
  53. parse_search()
  54. parse_search_order()
  55. parse_search_terms()
  56. parse_tax_query()
  57. query()
  58. reset_postdata()
  59. rewind_comments()
  60. rewind_posts()
  61. set()
  62. setup_postdata()
  63. set_404()
  64. set_found_posts()
  65. the_comment()
  66. the_post()
  67. __call()
  68. __construct()
  69. __get()
  70. __isset()
  71. Примеры использования
  72. Использование метода query для установки параметров запроса
  73. Генерация ключа кэша с помощью метода generate_cache_key
  74. Получение массива постов с помощью метода get_posts
  75. Определение, является ли запрос для существующей страницы с помощью метода is_page
  76. Получение текущего объекта запроса с помощью метода get_queried_object
  77. Вопросы и ответы
  78. Как получить список постов, отсортированных по дате публикации?
  79. Как получить список постов определенной категории?
  80. Как получить список постов с определенными метками (тегами)?
  81. Как получить список постов с определенными пользовательскими полями?
  82. Как получить список постов, отсортированных по количеству комментариев?
  83. Как получить список постов, отсортированных по случайному порядку?
  84. Как получить список постов, отсортированных по пользовательскому полю?
  85. Как получить список постов, отсортированных по рейтингу?

Описание класса

Класс WP_Query представляет собой основной механизм для выполнения запросов к базе данных WordPress и получения результатов. Он позволяет разработчикам создавать и настраивать запросы для получения постов, комментариев, пользователей и других объектов WordPress.

Этот класс предоставляет множество методов для настройки параметров запроса, таких как тип поста, категория, теги, автор, дата, сортировка и многое другое. Он также предоставляет методы для получения результатов запроса, таких как get_posts() и get_queried_object().

Класс WP_Query является одним из основных инструментов для работы с данными в WordPress и широко используется в разработке тем, плагинов и других расширений.

Методы

  • __call(): Делает приватные/защищенные методы доступными для обратной совместимости.
  • __construct(): Конструктор.
  • __get(): Делает приватные свойства доступными для обратной совместимости.
  • __isset(): Делает приватные свойства проверяемыми для обратной совместимости.
  • fill_query_vars(): Заполняет переменные запроса, которых нет в параметре.
  • generate_cache_key(): Генерирует ключ кэша.
  • generate_postdata(): Генерирует данные поста.
  • get(): Возвращает значение переменной запроса.
  • get_posts(): Возвращает массив постов на основе переменных запроса.
  • get_queried_object(): Возвращает текущий запрошенный объект.
  • get_queried_object_id(): Возвращает ID текущего запрошенного объекта.
  • get_search_stopwords(): Возвращает стоп-слова, используемые при разборе поисковых запросов.
  • have_comments(): Определяет, есть ли еще комментарии.
  • have_posts(): Определяет, есть ли еще посты в цикле.
  • init(): Инициализирует свойства объекта и устанавливает значения по умолчанию.
  • init_query_flags(): Сбрасывает флаги запроса на false.
  • is_404(): Определяет, является ли запрос 404 (не возвращает результаты).
  • is_archive(): Определяет, является ли запрос существующей страницей архива.
  • is_attachment(): Определяет, является ли запрос существующей страницей вложения.
  • is_author(): Определяет, является ли запрос существующей страницей архива автора.
  • is_category(): Определяет, является ли запрос существующей страницей архива категории.
  • is_comment_feed(): Определяет, является ли запрос комментариев каналом.
  • is_comments_popup(): Определяет, находится ли текущий URL во всплывающем окне комментариев. — устарело
  • is_date(): Определяет, является ли запрос существующей страницей архива даты.
  • is_day(): Определяет, является ли запрос существующей страницей архива дня.
  • is_embed(): Определяет, является ли запрос встроенным постом.
  • is_favicon(): Определяет, является ли запрос файлом favicon.ico.
  • is_feed(): Определяет, является ли запрос каналом.
  • is_front_page(): Определяет, является ли запрос главной страницей сайта.
  • is_home(): Определяет, является ли запрос домашней страницей блога.
  • is_main_query(): Определяет, является ли запрос основным запросом.
  • is_month(): Определяет, является ли запрос существующей страницей архива месяца.
  • is_page(): Определяет, является ли запрос существующей отдельной страницей.
  • is_paged(): Определяет, является ли запрос пагинированным результатом и не является ли первой страницей.
  • is_post_type_archive(): Определяет, является ли запрос существующей страницей архива типа поста.
  • is_preview(): Определяет, является ли запрос предварительным просмотром поста или страницы.
  • is_privacy_policy(): Определяет, является ли запрос страницей политики конфиденциальности.
  • is_robots(): Определяет, является ли запрос файлом robots.txt.
  • is_search(): Определяет, является ли запрос поисковым запросом.
  • is_single(): Определяет, является ли запрос существующим отдельным постом.
  • is_singular(): Определяет, является ли запрос существующим отдельным постом любого типа (пост, вложение, страница, пользовательские типы постов).
  • is_tag(): Определяет, является ли запрос существующей страницей архива тега.
  • is_tax(): Определяет, является ли запрос существующей страницей архива пользовательской таксономии.
  • is_time(): Определяет, является ли запрос определенным временем.
  • is_trackback(): Определяет, является ли запрос вызовом конечной точки трекбека.
  • is_year(): Определяет, является ли запрос существующей страницей архива года.
  • lazyload_comment_meta(): Лениво загружает метаданные комментариев для комментариев в цикле. — устарело
  • lazyload_term_meta(): Лениво загружает метаданные терминов для постов в цикле. — устарело
  • next_comment(): Переходит к следующему комментарию и возвращает объект WP_Comment.
  • next_post(): Устанавливает следующий пост и переходит к текущему индексу поста.
  • parse_order(): Разбирает переменную запроса ‘order’ и приводит ее к ASC или DESC при необходимости.
  • parse_orderby(): Преобразует заданный псевдоним ‘orderby’ (если разрешено) в правильное значение с префиксом.
  • parse_query(): Разбирает строку запроса и устанавливает логические значения типа запроса.
  • parse_query_vars(): Повторно разбирает переменные запроса.
  • parse_search(): Генерирует SQL для условия WHERE на основе переданных поисковых запросов.
  • parse_search_order(): Генерирует SQL для условия ORDER BY на основе переданных поисковых запросов.
  • parse_search_terms(): Проверяет, подходят ли термины для поиска.
  • parse_tax_query(): Разбирает различные переменные запроса, связанные с таксономией.
  • query(): Настраивает запрос WordPress, разбирая строку запроса.
  • reset_postdata(): После прохождения вложенного запроса эта функция восстанавливает глобальную переменную $post к текущему посту в этом запросе.
  • rewind_comments(): Перематывает комментарии, сбрасывает индекс комментариев и комментарий на первый.
  • rewind_posts(): Перематывает посты и сбрасывает индекс поста.
  • set(): Устанавливает значение переменной запроса.
  • set_404(): Устанавливает свойство 404 и сохраняет, является ли запрос каналом.
  • set_found_posts(): Устанавливает количество найденных постов и количество страниц (если использовалось ограничение) для текущего запроса.
  • setup_postdata(): Устанавливает глобальные данные поста.
  • the_comment(): Устанавливает текущий комментарий.
  • the_post(): Устанавливает текущий пост.

Методы

fill_query_vars()

Метод fill_query_vars() класса WP_Query заполняет переменные запроса, которые не существуют в параметре.

Метод работает путем проверки каждой переменной запроса и заполнения ее значением по умолчанию, если она не определена.

Он используется для обеспечения полноты переменных запроса и предотвращения ошибок, связанных с отсутствующими значениями.

WP_Query::fill_query_vars( array $query_vars ): array

Метод fill_query_vars() принимает один обязательный параметр:

  • $query_vars (array) — Определенные переменные запроса.

Метод возвращает массив, содержащий полные переменные запроса с заполненными пустыми значениями.

  • $query_vars (array) — Обязательный. Определенные переменные запроса.

Параметр $query_vars содержит массив переменных запроса, которые уже определены.

Метод fill_query_vars() возвращает массив, содержащий полные переменные запроса с заполненными пустыми значениями.

<?php
$query_vars = array(
    'post_type' => 'post',
    'posts_per_page' => 10,
    // Другие переменные запроса
);
$query_vars = WP_Query::fill_query_vars( $query_vars );
// Работа с полными переменными запроса
?>

В приведенном выше примере кода мы создаем массив $query_vars, содержащий определенные переменные запроса, такие как post_type и posts_per_page. Затем мы вызываем метод fill_query_vars() класса WP_Query для заполнения пустых значений переменных запроса. Результат сохраняется обратно в $query_vars. Теперь мы можем работать с полными переменными запроса.

generate_cache_key()

Метод generate_cache_key() класса WP_Query генерирует ключ кэша для запроса. Он используется для создания уникального идентификатора кэша на основе переданных аргументов запроса и SQL-запроса.

WP_Query::generate_cache_key( array $args, string $sql ): string

Метод generate_cache_key() принимает два параметра:

  • $args (обязательный) — аргументы запроса.
  • $sql (обязательный) — SQL-запрос.

Метод возвращает строку — ключ кэша.


$args = array(
  'post_type' => 'post',
  'posts_per_page' => 5,
  'orderby' => 'date',
  'order' => 'DESC'
);
$sql = "SELECT * FROM wp_posts WHERE post_type = 'post'";
$cache_key = WP_Query::generate_cache_key( $args, $sql );

В приведенном выше примере мы создаем массив $args с аргументами запроса и строку $sql с SQL-запросом. Затем мы вызываем метод generate_cache_key() класса WP_Query и передаем ему аргументы запроса и SQL-запрос. Результатом будет ключ кэша, который будет использоваться для кэширования результатов запроса.

Обратите внимание, что в примере использованы только некоторые возможные аргументы запроса и SQL-запрос. Фактический код может содержать и другие аргументы и SQL-запросы в зависимости от требований проекта.

Таким образом, метод generate_cache_key() позволяет генерировать уникальный ключ кэша для запроса, что помогает улучшить производительность и ускорить выполнение запросов в WordPress.

generate_postdata()

Метод generate_postdata() класса WP_Query генерирует данные записи (post data) на основе переданного объекта WP_Post или его идентификатора. Этот метод используется для получения данных записи, которые могут быть использованы в дальнейшей обработке или отображении.

WP_Query::generate_postdata( WP_Post|object|int $post ): array|false

Метод generate_postdata() принимает один обязательный параметр:

  • $post (тип: WP_Post|object|int, обязательный) — экземпляр объекта WP_Post или его идентификатор/объект записи.

Метод возвращает массив элементов записи или false в случае ошибки.

<?php
$post_id = 123; // идентификатор записи
// Получение экземпляра объекта WP_Post по его идентификатору
$post = get_post( $post_id );
// Генерация данных записи
$post_data = WP_Query::generate_postdata( $post );
// Вывод данных записи
echo $post_data['post_title']; // Заголовок записи
echo $post_data['post_content']; // Содержимое записи
echo $post_data['post_date']; // Дата публикации записи
?>

В приведенном выше примере мы сначала получаем экземпляр объекта WP_Post с помощью функции get_post() и передаем его в метод generate_postdata(). Затем мы используем полученные данные записи для вывода заголовка, содержимого и даты публикации записи.

get()

Метод get() класса WP_Query используется для получения значения переменной запроса.

WP_Query::get( string $query_var, mixed $default_value = '' ): mixed

Метод get() принимает два параметра: $query_var (обязательный) и $default_value (необязательный). Он возвращает значение переменной запроса, если она установлена, иначе возвращает значение по умолчанию.

$query_var (string) — Обязательный. Ключ переменной запроса.

$default_value (mixed) — Необязательный. Значение, которое будет возвращено, если переменная запроса не установлена. По умолчанию: ».

Метод get() возвращает содержимое переменной запроса.

<?php
// Получение значения переменной запроса 'page'
$page = WP_Query::get( 'page' );
// Получение значения переменной запроса 'category' с значением по умолчанию 'uncategorized'
$category = WP_Query::get( 'category', 'uncategorized' );
?>

В приведенном выше примере кода мы используем метод get() для получения значения переменной запроса ‘page’. Затем мы используем метод с указанием значения по умолчанию для получения значения переменной запроса ‘category’.

get_posts()

Метод get_posts() класса WP_Query используется для получения массива постов на основе заданных переменных запроса. Он позволяет получить посты, соответствующие определенным критериям, таким как категория, тег, автор, дата публикации и другие.

WP_Query::get_posts(): WP_Post[]|int[]

Метод get_posts() возвращает массив объектов постов WP_Post[] или массив идентификаторов постов int[].

Метод get_posts() возвращает массив объектов постов WP_Post[] или массив идентификаторов постов int[]. Каждый объект поста содержит информацию о посте, такую как заголовок, содержимое, метаданные и другие свойства.

get_queried_object()

Метод get_queried_object() класса WP_Query используется для получения объекта, который в данный момент запрашивается.

Этот метод возвращает объект, который является результатом текущего запроса. Объект может быть экземпляром класса WP_Term, WP_Post_Type, WP_Post, WP_User или null.

Метод get_queried_object() является частью класса WP_Query, который представляет собой основной механизм запросов в WordPress.

WP_Query::get_queried_object(): WP_Term|WP_Post_Type|WP_Post|WP_User|null

Метод get_queried_object() вызывается статически, используя синтаксис ClassName::methodName(). Он не принимает никаких аргументов.

Этот метод возвращает объект, который является результатом текущего запроса. Объект может быть экземпляром класса WP_Term, WP_Post_Type, WP_Post, WP_User или null.

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

// Получение текущего объекта запроса
$queried_object = WP_Query::get_queried_object();
// Проверка типа объекта
if ($queried_object instanceof WP_Term) {
    // Обработка объекта типа WP_Term
} elseif ($queried_object instanceof WP_Post_Type) {
    // Обработка объекта типа WP_Post_Type
} elseif ($queried_object instanceof WP_Post) {
    // Обработка объекта типа WP_Post
} elseif ($queried_object instanceof WP_User) {
    // Обработка объекта типа WP_User
} elseif (is_null($queried_object)) {
    // Обработка случая, когда объект не найден
}

В данном примере мы получаем текущий объект запроса с помощью метода get_queried_object() и проверяем его тип с помощью оператора instanceof. Затем мы выполняем соответствующую обработку в зависимости от типа объекта.

Метод get_queried_object() возвращает объект, который является результатом текущего запроса. Объект может быть экземпляром класса WP_Term, WP_Post_Type, WP_Post, WP_User или null.

get_queried_object_id()

Метод get_queried_object_id() класса WP_Query возвращает идентификатор (ID) текущего запрашиваемого объекта. Он используется для получения ID объекта, с которым в данный момент работает запрос WordPress.

WP_Query::get_queried_object_id(): int

Метод get_queried_object_id() является статическим и возвращает целочисленное значение (int). Он не принимает никаких аргументов.

Этот метод может быть использован внутри классов, функций или хуков WordPress для получения ID текущего запрашиваемого объекта. Например, он может быть полезен при создании динамических шаблонов или при выполнении дополнительных действий на основе ID объекта.

Метод get_queried_object_id() возвращает идентификатор (ID) текущего запрашиваемого объекта в виде целого числа (int).

get_search_stopwords()

Метод get_search_stopwords() класса WP_Query используется для получения списка стоп-слов, которые используются при разборе поисковых запросов.

Стоп-слова — это слова, которые игнорируются при поиске. Они не учитываются при поиске постов или страниц, поэтому не влияют на результаты поиска.

WP_Query::get_search_stopwords(): string[]

Метод get_search_stopwords() вызывается статически, используя имя класса WP_Query и оператор двойного двоеточия ::. Он не принимает никаких аргументов.

Метод возвращает массив строк string[], содержащий стоп-слова.

Метод get_search_stopwords() возвращает массив строк string[], который содержит стоп-слова, используемые при разборе поисковых запросов.

have_comments()

Метод have_comments() класса WP_Query используется для определения наличия дополнительных комментариев.

Он проверяет, есть ли еще комментарии, которые можно отобразить, и возвращает true, если есть, и false, если больше нет комментариев.

WP_Query::have_comments(): bool

Метод have_comments() возвращает булево значение true, если есть доступные комментарии, и false, если больше нет комментариев.

Этот метод обычно используется в цикле комментариев для проверки наличия дополнительных комментариев, чтобы определить, нужно ли отображать кнопку «Загрузить еще» или показывать сообщение о том, что больше нет комментариев.

Метод have_comments() возвращает булево значение:

  • true — если есть доступные комментарии
  • false — если больше нет комментариев

have_posts()

Метод have_posts() является частью класса WP_Query и используется для определения наличия дополнительных записей в цикле WordPress. Он возвращает логическое значение — true, если есть доступные записи, и false, если достигнут конец цикла.

WP_Query::have_posts(): bool

Метод have_posts() является публичным и статическим, поэтому он может быть вызван непосредственно из класса WP_Query. Он возвращает логическое значение true, если есть доступные записи, и false, если достигнут конец цикла.

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

// Создание нового объекта WP_Query
$query = new WP_Query( $args );
// Проверка наличия записей в цикле
if ( $query->have_posts() ) {
    // Действия, если есть доступные записи
} else {
    // Действия, если достигнут конец цикла
}

В приведенном примере создается новый объект WP_Query с использованием аргументов $args. Затем метод have_posts() вызывается для проверки наличия записей в цикле. Если есть доступные записи, выполняются определенные действия, в противном случае выполняются другие действия.

Метод have_posts() возвращает логическое значение. Если есть доступные записи, он возвращает true, а если достигнут конец цикла, он возвращает false.

init()

Метод init() класса WP_Query инициализирует свойства объекта и устанавливает значения по умолчанию.

Данный метод вызывается автоматически при создании нового экземпляра класса WP_Query. Он устанавливает значения свойств объекта, такие как параметры запроса, типы постов, условия, сортировка и т.д.

Метод init() не требует явного вызова и не предназначен для использования в пользовательском коде. Вместо этого, разработчики могут использовать публичные методы класса WP_Query, такие как query() или get_posts(), для выполнения запросов к базе данных WordPress.

WP_Query::init();

Метод init() вызывается автоматически при создании нового экземпляра класса WP_Query. Он инициализирует свойства объекта и устанавливает значения по умолчанию.

Внутри метода init() происходит установка значений свойств объекта, таких как параметры запроса, типы постов, условия, сортировка и т.д. Эти значения могут быть изменены путем вызова соответствующих методов класса WP_Query.

Метод init() не возвращает никаких значений и не имеет параметров.

init_query_flags()

Метод init_query_flags() класса WP_Query используется для сброса флагов запроса на значение false. Флаги запроса представляют собой булевые значения, которые определяют различные аспекты запроса, такие как наличие постов, наличие комментариев, наличие страниц и т. д.

Этот метод позволяет сбросить все флаги запроса, чтобы начать новый запрос с чистого листа. После вызова метода init_query_flags() все флаги запроса будут установлены в значение false.

WP_Query::init_query_flags();

Этот код вызывает статический метод init_query_flags() класса WP_Query, который сбрасывает все флаги запроса на значение false.

Метод init_query_flags() не принимает никаких аргументов и не возвращает никаких значений. Он просто изменяет значения флагов запроса внутри объекта WP_Query.

is_404()

Метод is_404() класса WP_Query используется для определения, является ли текущий запрос страницей 404 ошибки (не возвращает результатов).

WP_Query::is_404(): bool

Метод is_404() возвращает булево значение true или false в зависимости от того, является ли текущий запрос страницей 404 ошибки.

Метод is_404() возвращает булево значение (bool), указывающее, является ли текущий запрос страницей 404 ошибки.

is_archive()

Метод is_archive() класса WP_Query используется для определения, является ли текущий запрос страницей архива. Архивная страница — это страница, которая отображает записи, относящиеся к определенной категории, метке, автору, дате или другим параметрам.

WP_Query::is_archive(): bool

Метод is_archive() возвращает значение типа bool, которое указывает, является ли текущий запрос архивной страницей. Если текущий запрос является архивной страницей, метод вернет true, в противном случае — false.

Метод is_archive() возвращает значение типа bool, которое указывает, является ли текущий запрос архивной страницей. Если текущий запрос является архивной страницей, метод вернет true, в противном случае — false.

is_attachment()

Метод is_attachment() класса WP_Query определяет, является ли текущий запрос страницей существующего вложения.

WP_Query::is_attachment( int|string|int[]|string[] $attachment = '' ): bool

Метод is_attachment() принимает один параметр:

  • $attachment (необязательно): Идентификатор, заголовок, слаг или массив таких значений для проверки. По умолчанию: пустая строка.

$attachment (необязательно): Идентификатор, заголовок, слаг или массив таких значений для проверки. По умолчанию: пустая строка.

Метод is_attachment() возвращает логическое значение (bool) — является ли текущий запрос страницей существующего вложения.


/**
 * Проверяет, является ли текущий запрос страницей существующего вложения.
 *
 * @param int|string|int[]|string[] $attachment Идентификатор, заголовок, слаг или массив таких значений для проверки. По умолчанию: пустая строка.
 * @return bool Является ли текущий запрос страницей существующего вложения.
 */
$is_attachment = WP_Query::is_attachment( $attachment );

is_author()

Метод is_author() класса WP_Query определяет, является ли текущий запрос страницей существующего архива автора.

WP_Query::is_author( int|string|int[]|string[] $author = '' ): bool

Метод is_author() принимает один параметр:

  • $author (необязательно) — идентификатор пользователя, псевдоним, имя пользователя или массив таких значений, с которыми нужно сравнить. По умолчанию: пустая строка.

$author int|string|int[]|string[] — необязательный параметр, который принимает идентификатор пользователя, псевдоним, имя пользователя или массив таких значений, с которыми нужно сравнить. По умолчанию: пустая строка.

Метод is_author() возвращает логическое значение true, если текущий запрос является страницей существующего архива автора, и false в противном случае.

<?php
$args = array(
    'author' => 'admin',
    'posts_per_page' => 5
);
$query = new WP_Query( $args );
if ( $query->is_author() ) {
    echo 'Это страница архива автора';
} else {
    echo 'Это не страница архива автора';
}
?>

В приведенном выше примере мы создаем новый объект WP_Query с параметрами, включая author со значением «admin» и posts_per_page со значением 5. Затем мы проверяем, является ли текущий запрос страницей архива автора с помощью метода is_author(). Если это так, выводится сообщение «Это страница архива автора», в противном случае выводится сообщение «Это не страница архива автора».

is_category()

Метод is_category() является частью класса WP_Query и используется для определения, является ли текущий запрос страницей архива существующей категории.

WP_Query::is_category( int|string|int[]|string[] $category = '' ): bool

Метод is_category() принимает один необязательный параметр $category, который может быть целым числом (ID категории), строкой (имя или слаг категории) или массивом таких значений. По умолчанию параметр равен пустой строке.

$category (int|string|int[]|string[]) — ID, имя, слаг категории или массив таких значений для проверки. По умолчанию: пустая строка.

Метод is_category() возвращает логическое значение true, если текущий запрос является страницей архива существующей категории, и false в противном случае.

<?php
    $query = new WP_Query();
    // Проверяем, является ли текущий запрос страницей архива категории с ID 5
    if ( $query->is_category( 5 ) ) {
        // Код, который будет выполнен, если текущий запрос является страницей архива категории с ID 5
    } else {
        // Код, который будет выполнен, если текущий запрос не является страницей архива категории с ID 5
    }
?>

is_comments_popup()

Метод is_comments_popup() класса WP_Query определяет, находится ли текущий URL в окне комментариев-всплывающего окна. Этот метод был устаревшим начиная с версии 4.5.0 WordPress.

WP_Query::is_comments_popup(): false

Метод is_comments_popup() всегда возвращает значение false. Он используется для определения, находится ли текущий URL в окне комментариев-всплывающего окна.

Метод is_comments_popup() всегда возвращает значение false.

is_comment_feed()

Метод is_comment_feed() класса WP_Query используется для определения, является ли текущий запрос комментариев к ленте.

WP_Query::is_comment_feed(): bool

Метод is_comment_feed() возвращает булево значение true, если текущий запрос является комментарием к ленте, и false в противном случае.

Метод is_comment_feed() возвращает булево значение, указывающее, является ли текущий запрос комментарием к ленте.

is_date()

Метод is_date() класса WP_Query используется для определения, является ли текущий запрос архивом существующей даты.

WP_Query::is_date(): bool

Метод is_date() возвращает булевое значение true или false в зависимости от того, является ли текущий запрос архивом существующей даты.

Метод is_date() возвращает булевое значение true, если текущий запрос является архивом существующей даты, и false в противном случае.

is_day()

Метод is_day() класса WP_Query определяет, является ли текущий запрос для существующего архива дня.

WP_Query::is_day(): bool

Метод is_day() возвращает булево значение true, если текущий запрос является запросом для существующего архива дня, и false в противном случае.

Метод is_day() возвращает булево значение true, если текущий запрос является запросом для существующего архива дня.

is_embed()

Метод is_embed() является частью класса WP_Query и используется для определения, является ли запрос встроенным постом. Он возвращает булево значение, указывающее, является ли запрос встроенным постом.

WP_Query::is_embed(): bool

Метод is_embed() вызывается как статический метод класса WP_Query. Он не принимает никаких аргументов. Возвращает булево значение true, если запрос является встроенным постом, и false в противном случае.

Метод is_embed() возвращает булево значение. Если запрос является встроенным постом, то возвращается true. Если запрос не является встроенным постом, то возвращается false.

is_favicon()

Метод is_favicon() класса WP_Query используется для определения, является ли текущий запрос запросом для файла favicon.ico. Файл favicon.ico обычно используется для отображения иконки сайта во вкладке браузера или в закладках.

WP_Query::is_favicon(): bool

Метод is_favicon() возвращает булево значение true, если текущий запрос является запросом для файла favicon.ico, и false в противном случае. Метод не принимает никаких аргументов.

Метод is_favicon() возвращает булево значение. Если текущий запрос является запросом для файла favicon.ico, метод вернет true. В противном случае, метод вернет false.

is_feed()

Метод is_feed() класса WP_Query определяет, является ли текущий запрос запросом на получение фида (ленты).

Метод возвращает true, если текущий запрос является запросом на получение фида, и false в противном случае.

WP_Query::is_feed( string|string[] $feeds = '' ) : bool

Метод is_feed() принимает необязательный параметр $feeds, который может быть строкой или массивом строк, и представляет тип или типы фида, с которыми нужно сравнить текущий запрос. Если параметр не указан, то метод просто проверяет, является ли текущий запрос запросом на получение любого типа фида.

$feeds (строка или массив строк) — Необязательный параметр. Тип или типы фида, с которыми нужно сравнить текущий запрос. По умолчанию: пустая строка.

Метод is_feed() возвращает true, если текущий запрос является запросом на получение фида, и false в противном случае.

<?php
// Создаем новый объект WP_Query
$query = new WP_Query();
// Проверяем, является ли текущий запрос запросом на получение фида
$is_feed = $query->is_feed();
// Выводим результат
if ($is_feed) {
    echo 'Текущий запрос является запросом на получение фида.';
} else {
    echo 'Текущий запрос не является запросом на получение фида.';
}
?>

is_front_page()

Метод is_front_page() класса WP_Query используется для определения, является ли текущий запрос запросом главной страницы сайта. Он возвращает логическое значение true, если запрос является запросом главной страницы, и false в противном случае.

WP_Query::is_front_page(): bool

Метод is_front_page() вызывается статически, без создания экземпляра класса WP_Query. Он возвращает логическое значение true, если текущий запрос является запросом главной страницы сайта, и false в противном случае.

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

// Проверяем, является ли текущий запрос запросом главной страницы
if ( WP_Query::is_front_page() ) {
    // Код, который будет выполнен, если запрос является запросом главной страницы
} else {
    // Код, который будет выполнен, если запрос не является запросом главной страницы
}

Метод is_front_page() возвращает логическое значение true, если текущий запрос является запросом главной страницы сайта, и false в противном случае.

is_home()

Метод is_home() класса WP_Query используется для определения, является ли текущий запрос запросом для главной страницы блога.

Метод проверяет, соответствует ли текущий запрос главной странице блога, которая может быть установлена в настройках WordPress. Если текущий запрос соответствует главной странице блога, метод возвращает true, в противном случае — false.

WP_Query::is_home(): bool

Метод is_home() не принимает никаких аргументов.

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

// Создаем новый объект WP_Query
$query = new WP_Query();
// Проверяем, является ли текущий запрос запросом для главной страницы блога
$is_home = $query->is_home();
// Выводим результат
if ($is_home) {
    echo 'Текущий запрос является запросом для главной страницы блога.';
} else {
    echo 'Текущий запрос не является запросом для главной страницы блога.';
}

В данном примере мы создаем новый объект WP_Query и проверяем, является ли текущий запрос запросом для главной страницы блога. Затем выводим соответствующее сообщение в зависимости от результата проверки.

Метод is_home() возвращает значение типа bool. Если текущий запрос является запросом для главной страницы блога, метод возвращает true. В противном случае, метод возвращает false.

is_main_query()

Метод is_main_query() класса WP_Query определяет, является ли текущий запрос основным запросом.

Основной запрос — это первоначальный запрос, который WordPress выполняет при загрузке страницы. Он обрабатывает основное содержимое страницы, такое как записи блога или страницы, и может быть изменен с помощью параметров запроса.

Метод is_main_query() возвращает true, если текущий запрос является основным запросом, и false в противном случае.

WP_Query::is_main_query(): bool

Метод is_main_query() является статическим методом класса WP_Query. Он не требует создания экземпляра класса и может быть вызван напрямую.

Метод возвращает логическое значение true или false, в зависимости от того, является ли текущий запрос основным запросом.

Метод is_main_query() возвращает логическое значение true, если текущий запрос является основным запросом, и false в противном случае.

is_month()

Метод is_month() класса WP_Query используется для определения, является ли текущий запрос запросом для существующего архива месяца. Он проверяет, соответствует ли текущий запрос архиву месяца, и возвращает true, если это так, и false в противном случае.

WP_Query::is_month(): bool

Метод is_month() не принимает никаких аргументов. Он может быть вызван на экземпляре класса WP_Query или на глобальном объекте $wp_query.

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

$query = new WP_Query();
if ( $query->is_month() ) {
    // Код, который будет выполняться, если текущий запрос является архивом месяца
}

В этом примере мы создаем новый объект WP_Query и проверяем, является ли текущий запрос архивом месяца с помощью метода is_month(). Если это так, то выполняется определенный код.

Метод is_month() возвращает значение типа bool. Если текущий запрос является архивом месяца, то метод вернет true. В противном случае, если текущий запрос не является архивом месяца, метод вернет false.

is_page()

Метод is_page() является частью класса WP_Query и используется для определения, является ли текущий запрос для существующей отдельной страницы. Он возвращает логическое значение true, если запрос относится к отдельной странице, и false в противном случае.

WP_Query::is_page( int|string|int[]|string[] $page = '' ) : bool

Метод is_page() принимает один необязательный параметр $page, который может быть целочисленным значением ID страницы, строкой с заголовком, слагом или путем страницы, или массивом таких значений. По умолчанию параметр равен пустой строке.

$page (int|string|int[]|string[]) — Необязательный. ID страницы, заголовок, слаг или путь страницы, или массив таких значений для проверки. По умолчанию: пустая строка.

Метод is_page() возвращает логическое значение true, если текущий запрос относится к существующей отдельной странице, и false в противном случае.

<?php
    // Создание нового объекта WP_Query
    $query = new WP_Query();
    // Проверка, является ли текущий запрос отдельной страницей с ID 5
    if ( $query->is_page( 5 ) ) {
        // Код, который будет выполнен, если текущий запрос относится к странице с ID 5
    } else {
        // Код, который будет выполнен, если текущий запрос не относится к странице с ID 5
    }
?>

is_paged()

Метод is_paged() класса WP_Query определяет, является ли запрос результатом пагинации и не является ли он запросом для первой страницы.

WP_Query::is_paged(): bool

Метод is_paged() возвращает булево значение true или false. Он используется для проверки, является ли текущий запрос результатом пагинации.

Когда пользователь просматривает страницу, содержащую список записей, WordPress разбивает этот список на несколько страниц. Метод is_paged() позволяет определить, находится ли пользователь на странице, отличной от первой. Это может быть полезно, например, для изменения внешнего вида или функциональности страницы в зависимости от того, на какой странице находится пользователь.

Метод is_paged() возвращает булево значение. Если текущий запрос является результатом пагинации, метод вернет true. В противном случае, если текущий запрос является запросом для первой страницы, метод вернет false.

is_post_type_archive()

Метод is_post_type_archive() класса WP_Query определяет, является ли текущий запрос страницей архива существующего типа записи.

Метод проверяет, соответствует ли текущий запрос архиву типа записи, который был указан в параметре $post_types метода. Если текущий запрос соответствует архиву указанного типа записи, метод возвращает true, в противном случае — false.

WP_Query::is_post_type_archive( string|string[] $post_types = '' ): bool

Метод is_post_type_archive() принимает один необязательный параметр:

  • $post_types (строка или массив строк) — Тип или типы записей, с которыми нужно сравнить текущий запрос. По умолчанию: пустая строка.

$post_types (строка или массив строк): Тип или типы записей, с которыми нужно сравнить текущий запрос. По умолчанию: пустая строка.

Метод is_post_type_archive() возвращает логическое значение true, если текущий запрос соответствует архиву указанного типа записи, и false в противном случае.

<?php
// Создание нового объекта WP_Query
$query = new WP_Query();
// Проверка, является ли текущий запрос страницей архива типа записи "book"
if ( $query->is_post_type_archive( 'book' ) ) {
    // Если текущий запрос соответствует архиву типа записи "book"
    echo 'This is a book archive page.';
} else {
    // Если текущий запрос не соответствует архиву типа записи "book"
    echo 'This is not a book archive page.';
}
?>

is_preview()

Метод is_preview() класса WP_Query используется для определения, является ли текущий запрос предварительным просмотром записи или страницы.

WP_Query::is_preview(): bool

Метод is_preview() возвращает булево значение (true или false) в зависимости от того, является ли текущий запрос предварительным просмотром записи или страницы.

Метод is_preview() возвращает булево значение (true или false), указывающее, является ли текущий запрос предварительным просмотром записи или страницы.

is_privacy_policy()

Метод is_privacy_policy() класса WP_Query определяет, является ли текущий запрос страницей политики конфиденциальности.

WP_Query::is_privacy_policy(): bool

Метод is_privacy_policy() возвращает булево значение true, если текущий запрос является страницей политики конфиденциальности, и false в противном случае.

Метод is_privacy_policy() возвращает булево значение. Если текущий запрос является страницей политики конфиденциальности, то возвращается true. В противном случае, возвращается false.

is_robots()

Метод is_robots() класса WP_Query определяет, является ли текущий запрос запросом для файла robots.txt. Файл robots.txt используется для указания правил для поисковых роботов, которые индексируют ваш сайт.

WP_Query::is_robots(): bool

Метод is_robots() возвращает булево значение true, если текущий запрос является запросом для файла robots.txt, и false в противном случае.

Метод is_robots() возвращает булево значение. Если текущий запрос является запросом для файла robots.txt, то метод возвращает true. В противном случае, метод возвращает false.

Метод is_search() класса WP_Query используется для определения, является ли текущий запрос поисковым запросом. Он проверяет, установлен ли параметр s в URL запроса, который указывает на поисковый запрос. Если параметр s установлен, то метод возвращает true, в противном случае — false.

WP_Query::is_search(): bool

Метод is_search() возвращает булево значение true, если текущий запрос является поисковым запросом, и false в противном случае.

Метод is_search() возвращает булево значение (true или false), указывающее, является ли текущий запрос поисковым запросом.

is_single()

Метод is_single() является частью класса WP_Query и используется для определения, является ли текущий запрос запросом для существующей отдельной записи (поста).

WP_Query::is_single( int|string|int[]|string[] $post = '' ): bool

Метод is_single() принимает один параметр:

  • $post (int|string|int[]|string[]): необязательный параметр, содержащий ID, заголовок, слаг или путь отдельной записи, или массив таких значений, с которыми нужно сравнить текущий запрос. По умолчанию: пустая строка.

Метод is_single() возвращает логическое значение true, если текущий запрос является запросом для существующей отдельной записи, и false в противном случае.

<?php
// Создаем новый объект WP_Query
$query = new WP_Query();
// Проверяем, является ли текущий запрос запросом для отдельной записи с ID 5
if ( $query->is_single( 5 ) ) {
    // Код, который будет выполнен, если текущий запрос является запросом для отдельной записи с ID 5
    echo 'Текущий запрос является запросом для отдельной записи с ID 5';
} else {
    // Код, который будет выполнен, если текущий запрос не является запросом для отдельной записи с ID 5
    echo 'Текущий запрос не является запросом для отдельной записи с ID 5';
}
?>

is_singular()

Метод is_singular() является частью класса WP_Query и используется для определения, является ли текущий запрос запросом для существующего отдельного поста любого типа (пост, вложение, страница, пользовательский тип поста).

WP_Query::is_singular( string|string[] $post_types = '' ) : bool

Метод is_singular() принимает один необязательный параметр $post_types, который может быть строкой или массивом строк, и представляет собой типы постов, с которыми нужно сравнить текущий запрос. По умолчанию параметр равен пустой строке.

$post_types (строка или массив строк) — Тип поста или массив типов постов, с которыми нужно сравнить текущий запрос. По умолчанию: пустая строка.

Метод is_singular() возвращает логическое значение true, если текущий запрос является запросом для существующего отдельного поста или для любого из указанных типов постов. В противном случае возвращает false.

<?php
    $query = new WP_Query();
    // Проверяем, является ли текущий запрос запросом для существующего отдельного поста любого типа
    if ( $query->is_singular() ) {
        // Выводим сообщение, если текущий запрос является запросом для существующего отдельного поста
        echo 'Текущий запрос является запросом для существующего отдельного поста.';
    } else {
        // Выводим сообщение, если текущий запрос не является запросом для существующего отдельного поста
        echo 'Текущий запрос не является запросом для существующего отдельного поста.';
    }
    // Проверяем, является ли текущий запрос запросом для существующего отдельного поста определенного типа
    if ( $query->is_singular( 'post' ) ) {
        // Выводим сообщение, если текущий запрос является запросом для существующего отдельного поста типа "post"
        echo 'Текущий запрос является запросом для существующего отдельного поста типа "post".';
    } else {
        // Выводим сообщение, если текущий запрос не является запросом для существующего отдельного поста типа "post"
        echo 'Текущий запрос не является запросом для существующего отдельного поста типа "post".';
    }
?>

is_tag()

Метод is_tag() класса WP_Query определяет, является ли текущий запрос страницей архива существующего тега.

WP_Query::is_tag( int|string|int[]|string[] $tag = '' ): bool

Метод is_tag() принимает необязательный параметр $tag, который может быть числом, строкой или массивом чисел и строк. Этот параметр используется для проверки соответствия текущего запроса указанным тегам. Метод возвращает логическое значение true, если текущий запрос является страницей архива существующего тега, и false в противном случае.

$tag (int|string|int[]|string[]) — Необязательный. Идентификатор, название, слаг тега или массив таких значений для проверки. По умолчанию: пустая строка.

Метод is_tag() возвращает логическое значение true, если текущий запрос является страницей архива существующего тега, и false в противном случае.

<?php
$args = array(
    'tag' => 'news', // Проверяем, является ли текущий запрос страницей архива тега с названием 'news'
);
$query = new WP_Query( $args );
if ( $query->is_tag() ) {
    echo 'Текущий запрос является страницей архива тега';
} else {
    echo 'Текущий запрос не является страницей архива тега';
}
?>

В данном примере мы создаем новый объект WP_Query с параметром tag, установленным в значение ‘news’. Затем мы используем метод is_tag() для проверки, является ли текущий запрос страницей архива тега с названием ‘news’. Если это так, выводится сообщение «Текущий запрос является страницей архива тега», в противном случае выводится сообщение «Текущий запрос не является страницей архива тега».

is_tax()

Метод is_tax() класса WP_Query используется для определения, является ли текущий запрос страницей архива для существующей пользовательской таксономии. Он проверяет, соответствует ли текущий запрос указанной таксономии и термину.

WP_Query::is_tax( string|string[] $taxonomy = '', int|string|int[]|string[] $term = '' ): bool

Метод is_tax() принимает два необязательных параметра:

  • $taxonomy (строка или массив строк) — Слаг или слаги таксономии, с которыми нужно сравнить текущий запрос. По умолчанию: пустая строка.
  • $term (число, строка или массив чисел и строк) — Идентификатор, название или слаг термина, с которыми нужно сравнить текущий запрос. По умолчанию: пустая строка.

Метод is_tax() возвращает логическое значение:

  • true — если текущий запрос является страницей архива для существующей пользовательской таксономии.
  • false — если текущий запрос является страницей архива для встроенных таксономий (категории и метки).
<?php
$args = array(
    'post_type' => 'product',
    'tax_query' => array(
        array(
            'taxonomy' => 'color',
            'field' => 'slug',
            'terms' => 'red'
        )
    )
);
$query = new WP_Query( $args );
if ( $query->is_tax( 'color', 'red' ) ) {
    // Выполнить действия, если текущий запрос является страницей архива для таксономии 'color' и термина 'red'
} else {
    // Выполнить действия, если текущий запрос не является страницей архива для таксономии 'color' и термина 'red'
}
?>

is_time()

Метод is_time() класса WP_Query определяет, является ли текущий запрос для конкретного времени.

WP_Query::is_time(): bool

Метод is_time() возвращает булево значение true или false в зависимости от того, является ли текущий запрос для конкретного времени.

Метод is_time() возвращает булево значение. Если текущий запрос является запросом для конкретного времени, то метод вернет true. В противном случае, метод вернет false.

is_trackback()

Метод is_trackback() класса WP_Query используется для определения, является ли текущий запрос запросом к конечной точке трекбеков.

Трекбеки — это способ оповещения других веб-сайтов о том, что они были упомянуты в записи на текущем сайте. Когда трекбеки включены, WordPress отправляет запросы на указанные в записи URL-адреса, чтобы уведомить другие сайты о новых упоминаниях.

Метод is_trackback() возвращает true, если текущий запрос является запросом к конечной точке трекбеков, и false в противном случае.

WP_Query::is_trackback(): bool

Метод is_trackback() является статическим методом класса WP_Query. Он не требует создания экземпляра класса для его использования.

Для использования метода is_trackback() вызовите его, указав имя класса и метода, разделяя их двойным двоеточием.

Метод is_trackback() возвращает логическое значение true или false. Оно указывает, является ли текущий запрос запросом к конечной точке трекбеков.

is_year()

Метод is_year() класса WP_Query используется для определения, является ли текущий запрос запросом для существующего архива года. Он проверяет, соответствует ли текущий запрос архиву года и возвращает логическое значение.

WP_Query::is_year(): bool

Метод is_year() не принимает аргументов. Он вызывается на объекте класса WP_Query и возвращает логическое значение true или false.

Метод is_year() возвращает логическое значение, указывающее, является ли текущий запрос запросом для существующего архива года. Если запрос соответствует архиву года, метод возвращает true, в противном случае — false.

lazyload_comment_meta()

Метод lazyload_comment_meta() класса WP_Query используется для ленивой загрузки метаданных комментариев для комментариев в цикле. Он был объявлен устаревшим и рекомендуется использовать функцию wp_lazyload_comment_meta() вместо него.

WP_Query::lazyload_comment_meta( mixed $check, int $comment_id ): mixed

Метод lazyload_comment_meta() принимает два обязательных параметра: $check и $comment_id. Он возвращает результат в виде значения типа mixed.

$check (mixed) — Обязательный параметр. Значение, которое будет проверяться.

$comment_id (int) — Обязательный параметр. Идентификатор комментария.

Метод lazyload_comment_meta() возвращает результат в виде значения типа mixed.

<code>$result = WP_Query::lazyload_comment_meta( $check, $comment_id );</code>

Пример кода, демонстрирующий использование метода lazyload_comment_meta() с указанием всех параметров.

lazyload_term_meta()

Метод lazyload_term_meta() класса WP_Query используется для ленивой загрузки метаданных термина для записей в цикле.

WP_Query::lazyload_term_meta( mixed $check, int $term_id ): mixed

Метод lazyload_term_meta() принимает два обязательных параметра: $check и $term_id. Он возвращает результат в виде mixed.

$check (mixed, обязательный): Параметр, который определяет, нужно ли выполнять ленивую загрузку метаданных термина для записей в цикле.

$term_id (int, обязательный): Идентификатор термина, для которого нужно загрузить метаданные.

Метод lazyload_term_meta() возвращает результат в виде mixed.

<?php
// Пример использования метода lazyload_term_meta()
$check = true;
$term_id = 123;
$result = WP_Query::lazyload_term_meta( $check, $term_id );
?>

В приведенном выше примере кода мы устанавливаем значение параметра $check в true и $term_id в 123. Затем мы вызываем метод lazyload_term_meta() класса WP_Query с этими параметрами и сохраняем результат в переменную $result.

next_comment()

Метод next_comment() является частью класса WP_Query и используется для итерации текущего индекса комментариев и возврата объекта WP_Comment.

Метод работает следующим образом: он увеличивает текущий индекс комментариев на 1 и возвращает объект WP_Comment для комментария с этим индексом. Если комментарий не найден, метод возвращает null.

WP_Query::next_comment(): WP_Comment

Данный код используется для получения следующего комментария в цикле комментариев.

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

// Создаем экземпляр класса WP_Query
$query = new WP_Query( $args );
// Проверяем, есть ли комментарии
if ( $query->have_comments() ) {
    // Цикл комментариев
    while ( $query->have_comments() ) {
        $comment = $query->next_comment(); // Получаем следующий комментарий
        // Дальнейшая обработка комментария
    }
}

В данном примере мы создаем экземпляр класса WP_Query с заданными аргументами и проверяем, есть ли комментарии. Затем мы входим в цикл комментариев и при каждой итерации получаем следующий комментарий с помощью метода next_comment(). Далее мы можем выполнять дополнительную обработку полученного комментария.

Метод next_comment() возвращает объект WP_Comment, представляющий следующий комментарий в цикле комментариев. Если комментарий не найден, метод возвращает null.

next_post()

Метод next_post() класса WP_Query устанавливает следующий пост и перебирает текущий индекс поста.

WP_Query::next_post(): WP_Post

Метод next_post() возвращает объект WP_Post, представляющий следующий пост.

Метод next_post() возвращает объект WP_Post, представляющий следующий пост.

parse_order()

Метод parse_order() является частью класса WP_Query и используется для разбора значения переменной запроса ‘order’ и приведения его к значениям «ASC» или «DESC» в зависимости от необходимости.

Метод принимает один обязательный параметр — строку $order, которая представляет собой значение переменной запроса ‘order’.

Метод возвращает строку, представляющую санитаризованное значение переменной запроса ‘order’.

WP_Query::parse_order( string $order ): string

Метод parse_order() принимает один обязательный параметр — строку $order, которая представляет собой значение переменной запроса ‘order’.

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

$order = WP_Query::parse_order( $order );

$order (обязательный): Значение переменной запроса ‘order’.

Метод parse_order() возвращает санитаризованное значение переменной запроса ‘order’ в виде строки.

<?php
/**
 * Пример использования метода parse_order()
 *
 * @param string $order Значение переменной запроса 'order'.
 *
 * @return string Санитаризованное значение переменной запроса 'order'.
 */
$order = WP_Query::parse_order( $order );
?>

parse_orderby()

Метод parse_orderby() класса WP_Query преобразует заданный псевдоним orderby (если это разрешено) в правильно префиксированное значение. Он используется для преобразования псевдонимов сортировки в значения, которые можно использовать в запросе ORDER BY.

Метод parse_orderby() принимает один обязательный параметр — псевдоним поля, по которому нужно сортировать.

WP_Query::parse_orderby( string $orderby ): string|false

Метод parse_orderby() принимает один обязательный параметр — псевдоним поля, по которому нужно сортировать. Он возвращает строку с префиксированным значением, которое будет использовано в запросе ORDER BY. Если преобразование не удалось, метод вернет false.

$orderby (обязательный): Псевдоним для поля, по которому нужно сортировать.

Метод parse_orderby() возвращает строку с префиксированным значением, которое будет использовано в запросе ORDER BY. Если преобразование не удалось, метод вернет false.

<?php
// Пример использования метода parse_orderby()
$orderby = 'post_title'; // Псевдоним поля, по которому нужно сортировать
$order = 'ASC'; // Направление сортировки (ASC или DESC)
$query = new WP_Query( array(
    'orderby' => $orderby,
    'order'   => $order,
) );
if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        // Вывод постов
    }
}
wp_reset_postdata();
?>

В приведенном выше примере мы создаем новый объект WP_Query и передаем параметры orderby и order. Метод parse_orderby() будет использоваться внутри класса WP_Query для преобразования псевдонима post_title в правильно префиксированное значение, которое будет использовано в запросе ORDER BY. Затем мы выполняем цикл while для вывода постов в соответствии с заданными параметрами сортировки.

parse_query()

Метод parse_query() класса WP_Query используется для разбора строки запроса и установки булевых значений типа запроса.

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

WP_Query::parse_query( string|array $query = '' )

Метод parse_query() принимает один параметр $query, который может быть строкой или массивом параметров запроса. Если параметр не указан, будет использован пустой массив.

Код:

/**
 * Пример использования метода parse_query()
 */
$query_args = array(
    'post_type' => 'post',
    'category_name' => 'news',
    'posts_per_page' => 10
);
$query = new WP_Query();
$query->parse_query( $query_args );

В приведенном выше примере мы создаем новый объект WP_Query и передаем массив параметров запроса в метод parse_query(). Этот метод разбирает массив параметров и устанавливает соответствующие свойства объекта WP_Query для дальнейшей обработки запроса.

  • $query (string|array) — Массив или строка параметров запроса.
  • attachment_id (int) — Идентификатор вложения. Используется для типа записи ‘attachment’.
  • author (int|string) — Идентификатор автора или список идентификаторов, разделенных запятыми.
  • author_name (string) — Имя пользователя автора.
  • author__in (int[]) — Массив идентификаторов авторов для запроса.
  • author__not_in (int[]) — Массив идентификаторов авторов, которых не нужно включать в запрос.
  • cache_results (bool) — Определяет, нужно ли кэшировать информацию о записях. По умолчанию true.
  • cat (int|string) — Идентификатор категории или список идентификаторов, разделенных запятыми.
  • category__and (int[]) — Массив идентификаторов категорий, которые должны быть включены в запрос (логическое И).
  • category__in (int[]) — Массив идентификаторов категорий, которые должны быть включены в запрос (логическое ИЛИ).
  • category__not_in (int[]) — Массив идентификаторов категорий, которые не должны быть включены в запрос.
  • category_name (string) — Использовать слаг категории (не имя).
  • comment_count (array|int) — Фильтровать результаты по количеству комментариев. Можно указать точное количество комментариев или массив с ключами ‘value’ (количество комментариев) и ‘compare’ (оператор сравнения).
<?php
/**
 * Пример использования метода parse_query()
 */
$query_args = array(
    'post_type' => 'post',
    'category_name' => 'news',
    'posts_per_page' => 10
);
$query = new WP_Query();
$query->parse_query( $query_args );
?>

В приведенном выше примере мы создаем новый объект WP_Query и передаем массив параметров запроса в метод parse_query(). Этот метод разбирает массив параметров и устанавливает соответствующие свойства объекта WP_Query для дальнейшей обработки запроса.

parse_query_vars()

Метод parse_query_vars() класса WP_Query используется для повторного анализа переменных запроса. Он перепарсивает переменные запроса и обновляет внутренние свойства объекта WP_Query в соответствии с новыми значениями.

Этот метод вызывается внутри метода WP_Query::get_posts() для обработки запроса и получения соответствующих постов.

Метод parse_query_vars() работает следующим образом:

  1. Получает текущие значения переменных запроса из свойства $query_vars объекта WP_Query.
  2. Анализирует значения переменных запроса и обновляет внутренние свойства объекта WP_Query в соответствии с новыми значениями.
  3. Возвращает обновленные значения переменных запроса.
WP_Query::parse_query_vars();

Метод parse_query_vars() вызывается статически, без создания экземпляра класса WP_Query. Он автоматически обновляет значения переменных запроса внутри объекта WP_Query.

Этот метод обычно вызывается внутри метода WP_Query::get_posts() и не требует явного вызова извне.

Метод parse_search() класса WP_Query генерирует SQL для WHERE-условия на основе переданных поисковых терминов. Он используется для построения запроса к базе данных WordPress при выполнении поискового запроса.

WP_Query::parse_search( array $q ): string

Метод parse_search() принимает один обязательный параметр $q, который является массивом переменных запроса. Он возвращает строку, содержащую WHERE-условие SQL.

$q (обязательный): Массив переменных запроса. Включает в себя следующие параметры:

  • 's': Строка поискового запроса.
  • 'exact': Флаг, указывающий на точное совпадение поискового запроса.
  • 'sentence': Флаг, указывающий на поиск по целым предложениям.
  • 'search_terms_count': Количество поисковых терминов.
  • 'search_terms': Массив поисковых терминов.
  • 'search_orderby_title': Флаг, указывающий на сортировку результатов по заголовку.
  • 'search_orderby_relevance': Флаг, указывающий на сортировку результатов по релевантности.
  • 'search_orderby': Пользовательская сортировка результатов.
  • 'search_include_old': Флаг, указывающий на включение старых записей в результаты поиска.
  • 'search_exclude_old': Флаг, указывающий на исключение старых записей из результатов поиска.

Метод parse_search() возвращает строку, содержащую WHERE-условие SQL для поискового запроса.

<?php
$args = array(
    's' => 'example search term',
    'exact' => true,
    'sentence' => false,
    'search_terms_count' => 3,
    'search_terms' => array(
        'example',
        'search',
        'term',
    ),
    'search_orderby_title' => false,
    'search_orderby_relevance' => true,
    'search_orderby' => 'meta_value',
    'search_include_old' => true,
    'search_exclude_old' => false,
);
$where_clause = WP_Query::parse_search( $args );
?>

В приведенном выше примере кода используется метод parse_search() для генерации WHERE-условия SQL на основе переданных параметров запроса. Результат сохраняется в переменной $where_clause.

parse_search_order()

Метод parse_search_order() класса WP_Query генерирует SQL-запрос для условия ORDER BY на основе переданных поисковых терминов. Он используется для упорядочивания результатов запроса на основе релевантности поисковым терминам.

WP_Query::parse_search_order( array $q ): string

Метод parse_search_order() принимает один обязательный параметр $q — массив переменных запроса.

$q (обязательный) — Массив переменных запроса. Включает в себя информацию о поисковых терминах и других параметрах запроса.

Метод parse_search_order() возвращает строку, представляющую условие ORDER BY для SQL-запроса.

<code>// Пример использования метода parse_search_order()</code>
<code>$q = array(
    's' => 'example search term', // Поисковые термины
    'orderby' => 'relevance', // Упорядочивание по релевантности
    'order' => 'DESC' // Порядок сортировки
);
$order_by_clause = WP_Query::parse_search_order( $q );
echo $order_by_clause; // Выведет "ORDER BY wp_posts.post_title LIKE '%example search term%' DESC"</code>

parse_search_terms()

Метод parse_search_terms() класса WP_Query используется для проверки терминов на пригодность для поиска. Он проверяет, являются ли термины стоп-словами и возвращает только те термины, которые не являются стоп-словами.

WP_Query::parse_search_terms( string[] $terms ): string[]

Метод parse_search_terms() принимает один обязательный параметр:

  • $terms (string[]) — Массив терминов, которые нужно проверить.

$terms (string[]) — Обязательный. Массив терминов, которые нужно проверить.

Метод parse_search_terms() возвращает массив терминов, которые не являются стоп-словами.

<?php
$terms = array( 'apple', 'banana', 'cherry' ); // Массив терминов для проверки
$filtered_terms = WP_Query::parse_search_terms( $terms ); // Проверка терминов
// Вывод отфильтрованных терминов
foreach ( $filtered_terms as $term ) {
    echo $term . ' ';
}
?>

В данном примере мы создаем массив терминов для проверки: ‘apple’, ‘banana’, ‘cherry’. Затем мы вызываем метод parse_search_terms() и передаем ему этот массив. Метод проверяет каждый термин и возвращает только те термины, которые не являются стоп-словами. Затем мы выводим отфильтрованные термины с помощью цикла foreach.

parse_tax_query()

Метод parse_tax_query() класса WP_Query используется для разбора различных переменных запроса, связанных с таксономией. Он анализирует параметры запроса, связанные с таксономией, и строит соответствующий SQL-запрос для выборки записей, удовлетворяющих этим параметрам.

WP_Query::parse_tax_query( array $q )

Метод parse_tax_query() принимает один обязательный параметр $q, который является массивом переменных запроса. Передается по ссылке.

  • $q (array) — Обязательный. Переменные запроса. Передается по ссылке.
<?php
// Пример использования метода parse_tax_query()
// Создаем новый объект WP_Query
$query = new WP_Query();
// Создаем массив переменных запроса
$query_vars = array(
    'tax_query' => array(
        array(
            'taxonomy' => 'category',
            'field'    => 'slug',
            'terms'    => 'news',
        ),
    ),
);
// Передаем массив переменных запроса в метод parse_tax_query()
$query->parse_tax_query( $query_vars );
// Выводим результаты
var_dump( $query_vars );
?>

В приведенном выше примере мы создаем новый объект WP_Query и задаем массив переменных запроса, содержащий параметр tax_query. Затем мы передаем этот массив в метод parse_tax_query(). После выполнения метода, массив переменных запроса будет изменен и будет содержать информацию о разобранном запросе, готовую для использования в SQL-запросе.

query()

Метод query() класса WP_Query используется для настройки запроса WordPress путем разбора строки запроса.

WP_Query::query( string|array $query )

Метод query() принимает один обязательный параметр $query, который может быть строкой запроса URL или массивом аргументов запроса.

$query (string|array) — Обязательный. Строка запроса URL или массив аргументов запроса.

Метод query() возвращает массив объектов записей или идентификаторов записей.


$args = array(
    'post_type' => 'post',
    'posts_per_page' => 5,
    'category_name' => 'news',
);
$query = new WP_Query;
$query->query( $args );

В приведенном выше примере кода создается новый объект WP_Query и вызывается метод query() для настройки запроса. В этом примере мы получаем 5 последних записей типа «post» из категории «news».

reset_postdata()

Метод reset_postdata() класса WP_Query используется для восстановления глобальной переменной $post к текущему посту в данном запросе после прохождения через вложенный запрос. Это позволяет использовать функции и шаблоны, которые полагаются на глобальную переменную $post, после выполнения вложенного запроса.

Когда в WordPress выполняется запрос к базе данных для получения постов, глобальная переменная $post устанавливается на текущий пост в данном запросе. Когда выполняется вложенный запрос, глобальная переменная $post изменяется на текущий пост во вложенном запросе, что может привести к неправильному функционированию кода, который полагается на глобальную переменную $post.

Метод reset_postdata() решает эту проблему, восстанавливая глобальную переменную $post к текущему посту в данном запросе после прохождения через вложенный запрос. Таким образом, код, который полагается на глобальную переменную $post, может продолжать работать корректно после выполнения вложенного запроса.

WP_Query::reset_postdata();

Вызов метода reset_postdata() возвращает глобальную переменную $post к текущему посту в данном запросе после прохождения через вложенный запрос. Это позволяет использовать функции и шаблоны, которые полагаются на глобальную переменную $post, после выполнения вложенного запроса.

Примечание: Метод reset_postdata() должен вызываться после выполнения вложенного запроса, чтобы восстановить глобальную переменную $post.

rewind_comments()

Метод rewind_comments() класса WP_Query используется для перемотки комментариев в начало, сброса индекса комментариев и установки текущего комментария на первый.

Этот метод позволяет начать обработку комментариев с самого начала, после чего можно использовать другие методы класса WP_Query для получения и работы с комментариями.

WP_Query::rewind_comments();

Метод rewind_comments() вызывается статически, то есть без создания экземпляра класса WP_Query. Он не принимает никаких аргументов.

После вызова этого метода, текущий комментарий будет установлен на первый комментарий в результате запроса, а индекс комментариев будет сброшен, чтобы начать обработку с начала.

rewind_posts()

Метод rewind_posts() класса WP_Query используется для перемотки постов в начало и сброса индекса поста.

Этот метод переустанавливает указатель на первый пост в массиве постов, возвращаемых запросом, и сбрасывает индекс текущего поста на 0. Это позволяет повторно использовать тот же объект WP_Query для обработки постов с самого начала.

Метод rewind_posts() полезен, когда требуется обработать посты несколько раз или когда необходимо выполнить дополнительные действия с постами после первого прохода.

WP_Query::rewind_posts();

Вызов метода rewind_posts() позволяет перемотать посты в начало и сбросить индекс текущего поста на 0.

Этот метод не принимает аргументов и не возвращает значения.

Применение метода rewind_posts() особенно полезно, когда требуется выполнить дополнительные действия с постами после первого прохода или когда необходимо обработать посты несколько раз.

set()

Метод set() класса WP_Query используется для установки значения переменной запроса. Он позволяет изменить значение переменной запроса на указанное значение.

WP_Query::set( string $query_var, mixed $value )

Метод set() принимает два обязательных параметра: $query_var и $value. Первый параметр ($query_var) представляет собой ключ переменной запроса, а второй параметр ($value) — значение, которое нужно установить.

$query_var (строка, обязательный): Ключ переменной запроса.

$value (любой тип, обязательный): Значение, которое нужно установить.

<code>/**
 * Пример использования метода set()
 */
// Создаем новый объект WP_Query
$query = new WP_Query();
// Устанавливаем значение переменной запроса 'post_type' в 'page'
$query->set( 'post_type', 'page' );
// Устанавливаем значение переменной запроса 'posts_per_page' в 10
$query->set( 'posts_per_page', 10 );
// Устанавливаем значение переменной запроса 'orderby' в 'date'
$query->set( 'orderby', 'date' );
// Выполняем запрос
$query->query();</code>

В данном примере мы создаем новый объект WP_Query и используем метод set() для установки значений переменных запроса. Сначала мы устанавливаем значение переменной запроса ‘post_type’ в ‘page’, затем устанавливаем значение переменной запроса ‘posts_per_page’ в 10, и, наконец, устанавливаем значение переменной запроса ‘orderby’ в ‘date’. После этого мы выполняем запрос с помощью метода query().

setup_postdata()

Метод setup_postdata() класса WP_Query устанавливает глобальные данные для текущего поста. Он используется для настройки контекста и доступа к данным текущего поста внутри цикла WordPress.

WP_Query::setup_postdata( WP_Post|object|int $post ): true

Метод setup_postdata() принимает один обязательный параметр:

  • $post (обязательный): Экземпляр класса WP_Post, объект или идентификатор поста.

Метод возвращает true, когда завершает свою работу.


// Получаем последние 5 постов
$query = new WP_Query( 'posts_per_page=5' );
// Проверяем, есть ли посты
if ( $query->have_posts() ) {
  // Начинаем цикл постов
  while ( $query->have_posts() ) {
    // Устанавливаем данные текущего поста
    $query->the_post();
    // Выводим заголовок поста
    echo '<h2>' . get_the_title() . '</h2>';
    // Выводим содержимое поста
    echo '<p>' . get_the_content() . '</p>';
  }
}
// Восстанавливаем глобальные данные поста
wp_reset_postdata();

В приведенном выше примере мы создаем новый объект WP_Query для получения последних 5 постов. Затем мы проверяем, есть ли посты, и начинаем цикл постов. Внутри цикла мы используем метод setup_postdata() для установки данных текущего поста. Затем мы выводим заголовок и содержимое поста с помощью функций get_the_title() и get_the_content(). В конце мы восстанавливаем глобальные данные поста с помощью функции wp_reset_postdata().

set_404()

Метод set_404() класса WP_Query используется для установки свойства 404 и сохранения информации о том, является ли запрос лентой.

Метод позволяет установить свойство 404, которое указывает, что текущий запрос не соответствует ни одной странице или записи на сайте. Кроме того, метод сохраняет информацию о том, является ли текущий запрос лентой (feed).

WP_Query::set_404();

Этот код используется для установки свойства 404 и сохранения информации о том, является ли текущий запрос лентой.

Метод set_404() не принимает аргументов и не возвращает значений. Он просто устанавливает свойство 404 и сохраняет информацию о ленте для текущего запроса.

set_found_posts()

Метод set_found_posts() класса WP_Query устанавливает количество найденных записей и количество страниц (если был использован параметр limit) для текущего запроса.

Метод работает следующим образом: после выполнения запроса к базе данных, WordPress автоматически определяет количество найденных записей и количество страниц на основе полученных результатов. В некоторых случаях, может потребоваться установить эти значения вручную. Для этого и используется метод set_found_posts().

Метод принимает два обязательных параметра: массив $q с переменными запроса и строку $limits с ограничениями запроса.

WP_Query::set_found_posts( array $q, string $limits )

$q (array) — Обязательный. Переменные запроса.

$limits (string) — Обязательный. Ограничения запроса.

<?php
// Установка количества найденных записей и страниц
$args = array(
    'post_type' => 'post',
    'posts_per_page' => 10,
    'paged' => 2
);
$query = new WP_Query( $args );
// Получение ограничений запроса
$limits = $query->get('posts_per_page') . ' OFFSET ' . (($query->get('paged') - 1) * $query->get('posts_per_page'));
// Установка количества найденных записей и страниц
$query->set_found_posts( $query->found_posts, $limits );
?>

the_comment()

Метод the_comment() является частью класса WP_Query и используется для установки текущего комментария. Он позволяет получить доступ к информации о текущем комментарии, такой как автор, текст, дата и другие свойства комментария.

Метод the_comment() устанавливает текущий комментарий для использования внутри цикла комментариев. Он работает путем установки глобальной переменной $comment в текущий комментарий, который затем может быть использован внутри цикла комментариев для вывода информации о комментарии.

WP_Query::the_comment();

Метод the_comment() не принимает никаких аргументов. Он должен быть вызван внутри цикла комментариев, чтобы установить текущий комментарий.

После вызова метода the_comment() можно использовать глобальную переменную $comment для доступа к свойствам текущего комментария. Например, можно вывести имя автора комментария с помощью следующего кода:

$author = $comment->comment_author;
echo $author;

В приведенном выше примере переменная $author будет содержать имя автора текущего комментария, которое затем можно вывести на экран с помощью функции echo.

the_post()

Метод the_post() класса WP_Query устанавливает текущий пост. Он вызывается внутри цикла WordPress, чтобы установить контекст текущего поста, который затем может быть использован для вывода информации о посте.

Метод the_post() работает следующим образом:

  • Получает следующий пост из результатов запроса, созданных с помощью класса WP_Query.
  • Устанавливает глобальные переменные WordPress, такие как $post и $id, для текущего поста.
  • Инициализирует контекст текущего поста, что позволяет использовать функции и методы WordPress, которые требуют доступа к текущему посту.

Метод the_post() используется внутри цикла WordPress для вывода информации о текущем посте, такой как заголовок, содержимое, метаданные и т. д. Он также может быть использован для проверки наличия следующего поста в цикле и выполнения определенных действий, если посты закончились.

while ( $query->have_posts() ) {
    $query->the_post(); // Устанавливает текущий пост
    // Вывод информации о текущем посте
    echo '<h2>' . get_the_title() . '</h2>';
    echo '<div class="entry-content">' . get_the_content() . '</div>';
}

В приведенном выше примере кода, метод the_post() вызывается внутри цикла while для каждого поста в результате запроса. Он устанавливает текущий пост, чтобы функции get_the_title() и get_the_content() могли получить информацию о текущем посте и вывести ее на экран.

__call()

Метод «__call()» класса «WP_Query» позволяет сделать приватные/защищенные методы доступными для обратной совместимости.

WP_Query::__call( string $name, array $arguments ): mixed|false

Метод «__call()» принимает два обязательных параметра: $name (строка) — имя вызываемого метода, и $arguments (массив) — аргументы, передаваемые при вызове метода.

$name (строка) — Обязательный. Имя вызываемого метода.

$arguments (массив) — Обязательный. Аргументы, передаваемые при вызове метода.

Метод «__call()» возвращает значение обратного вызова (callback), если он определен, в противном случае возвращает false.

<?php
/**
 * Пример использования метода "__call()"
 */
$args = array(
    'post_type' => 'post',
    'posts_per_page' => 5,
);
$query = new WP_Query();
$result = $query->__call('get_posts', array($args));
if ($result) {
    // Обработка результата
} else {
    // Обработка ошибки
}
?>

В данном примере мы создаем новый объект класса WP_Query и вызываем метод «__call()» с параметрами ‘get_posts’ (имя вызываемого метода) и $args (аргументы метода). Результат вызова метода присваивается переменной $result. Если результат не является false, то выполняется обработка результата, иначе выполняется обработка ошибки.

__construct()

Метод __construct() является конструктором класса WP_Query и используется для создания нового объекта запроса WordPress. Он инициализирует свойства объекта запроса и устанавливает параметры для выполнения запроса.

WP_Query::__construct( string|array $query = '' )

Метод __construct() принимает один необязательный параметр $query, который может быть строкой или массивом переменных запроса URL. По умолчанию параметр равен пустой строке.

$query (string|array) — Необязательная строка запроса URL или массив переменных запроса. По умолчанию: пустая строка.


$args = array(
    'post_type' => 'post',
    'posts_per_page' => 5,
    'category_name' => 'news'
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        // Вывод контента поста
        the_content();
    }
} else {
    // Если постов не найдено
    echo 'Нет постов.';
}
// Сброс запроса
wp_reset_postdata();

В приведенном выше примере кода создается новый объект запроса WP_Query с параметрами, указанными в массиве $args. Затем происходит проверка наличия постов в результате запроса с помощью метода have_posts(). Если посты найдены, происходит итерация по ним с помощью метода the_post() и выводится контент каждого поста с помощью функции the_content(). Если постов не найдено, выводится сообщение «Нет постов.». В конце кода происходит сброс запроса с помощью функции wp_reset_postdata().

__get()

Метод «__get()» класса «WP_Query» используется для чтения значений приватных свойств объекта. Он делает приватные свойства доступными для чтения в целях обратной совместимости.

WP_Query::__get( string $name ): mixed

Метод «__get()» принимает один обязательный параметр — имя свойства, которое нужно получить. Он возвращает значение этого свойства.

$name (string) — Обязательный. Имя свойства, которое нужно получить.

Метод «__get()» возвращает значение запрашиваемого свойства. Тип возвращаемого значения может быть разным в зависимости от свойства.

<?php
$query = new WP_Query( $args ); // Создаем новый объект WP_Query с заданными аргументами
$posts_per_page = $query->__get( 'posts_per_page' ); // Получаем значение свойства "posts_per_page"
echo 'Количество постов на странице: ' . $posts_per_page;
?>

В этом примере мы создаем новый объект WP_Query с заданными аргументами и затем получаем значение свойства «posts_per_page» с помощью метода «__get()». Затем мы выводим это значение на экран.

__isset()

Метод «__isset()» является частью класса «WP_Query» и используется для проверки наличия частных свойств объекта. Он был создан для обеспечения обратной совместимости.

WP_Query::__isset( string $name ): bool

Метод «__isset()» принимает один обязательный параметр:

  • $name (string) — Свойство, которое нужно проверить на наличие.

Метод возвращает значение типа bool — true, если свойство установлено, и false, если свойство не установлено.


/**
 * Проверяет, установлено ли свойство "post_type".
 *
 * @param string $post_type Тип записи.
 * @return bool Возвращает true, если свойство установлено, и false, если свойство не установлено.
 */
$query = new WP_Query();
$isset = $query->__isset('post_type');

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

Использование метода query для установки параметров запроса


$args = array(
    'post_type' => 'post',
    'posts_per_page' => 5,
    'category_name' => 'news'
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        // Вывод постов
    }
    wp_reset_postdata();
} else {
    // Нет постов
}

В данном примере мы создаем новый объект WP_Query и передаем ему массив аргументов, в котором указываем тип поста, количество постов на странице и название категории. Затем мы проверяем, есть ли посты, и если есть, то выводим их в цикле while. После окончания цикла мы сбрасываем данные постов с помощью функции wp_reset_postdata(). Если постов нет, то выводим соответствующее сообщение.

Генерация ключа кэша с помощью метода generate_cache_key


$args = array(
    'post_type' => 'post',
    'posts_per_page' => 5,
    'category_name' => 'news'
);
$query = new WP_Query( $args );
$cache_key = $query->generate_cache_key();
echo $cache_key;

В этом примере мы создаем новый объект WP_Query и генерируем ключ кэша с помощью метода generate_cache_key(). Затем мы выводим сгенерированный ключ кэша.

Получение массива постов с помощью метода get_posts


$args = array(
    'post_type' => 'post',
    'posts_per_page' => 5,
    'category_name' => 'news'
);
$posts = get_posts( $args );
foreach ( $posts as $post ) {
    setup_postdata( $post );
    // Вывод постов
}
wp_reset_postdata();

В данном примере мы используем функцию get_posts() для получения массива постов на основе заданных аргументов. Затем мы перебираем полученный массив и с помощью функции setup_postdata() устанавливаем данные текущего поста. Внутри цикла мы можем выводить нужные нам данные поста. После окончания цикла мы сбрасываем данные постов с помощью функции wp_reset_postdata().

Определение, является ли запрос для существующей страницы с помощью метода is_page


if ( is_page() ) {
    echo 'Это страница';
} else {
    echo 'Это не страница';
}

В этом примере мы используем функцию is_page() для определения, является ли текущий запрос запросом для существующей страницы. Если это так, то выводим соответствующее сообщение.

Получение текущего объекта запроса с помощью метода get_queried_object


$queried_object = get_queried_object();
if ( $queried_object ) {
    echo 'Текущий объект запроса: ' . $queried_object->post_title;
} else {
    echo 'Текущий объект запроса не найден';
}

В данном примере мы используем функцию get_queried_object() для получения текущего объекта запроса. Затем мы проверяем, найден ли объект запроса, и если да, то выводим его заголовок. Если объект запроса не найден, то выводим соответствующее сообщение.

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

Как получить список постов, отсортированных по дате публикации?

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

$args = array(
    'post_type' => 'post',
    'orderby' => 'date',
    'order' => 'DESC',
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        // Вывод поста
    }
}
wp_reset_postdata();

Как получить список постов определенной категории?

Для получения списка постов определенной категории, нужно добавить параметр ‘category_name’ в массив аргументов запроса.

$args = array(
    'post_type' => 'post',
    'category_name' => 'news',
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        // Вывод поста
    }
}
wp_reset_postdata();

Как получить список постов с определенными метками (тегами)?

Для получения списка постов с определенными метками (тегами), нужно добавить параметр ‘tag’ в массив аргументов запроса.

$args = array(
    'post_type' => 'post',
    'tag' => 'tag1,tag2',
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        // Вывод поста
    }
}
wp_reset_postdata();

Как получить список постов с определенными пользовательскими полями?

Для получения списка постов с определенными пользовательскими полями, нужно добавить параметр ‘meta_query’ в массив аргументов запроса.

$args = array(
    'post_type' => 'post',
    'meta_query' => array(
        array(
            'key' => 'custom_field',
            'value' => 'value',
            'compare' => '=',
        ),
    ),
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        // Вывод поста
    }
}
wp_reset_postdata();

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

Для получения списка постов, отсортированных по количеству комментариев, можно использовать класс WP_Query и установить параметр ‘orderby’ в значение ‘comment_count’. Это позволит отсортировать посты по количеству комментариев в порядке убывания.


$args = array(
    'orderby' => 'comment_count',
    'order' => 'DESC',
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        // Вывод поста
    }
    wp_reset_postdata();
} else {
    // Постов не найдено
}

Как получить список постов, отсортированных по случайному порядку?

Для получения списка постов, отсортированных по случайному порядку, можно использовать класс WP_Query и установить параметр ‘orderby’ в значение ‘rand’. Это позволит отсортировать посты в случайном порядке.


$args = array(
    'orderby' => 'rand',
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        // Вывод поста
    }
    wp_reset_postdata();
} else {
    // Постов не найдено
}

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

Для получения списка постов, отсортированных по пользовательскому полю, можно использовать класс WP_Query и установить параметры ‘meta_key’ и ‘orderby’. Параметр ‘meta_key’ указывает на название пользовательского поля, по которому нужно сортировать, а параметр ‘orderby’ указывает на тип сортировки (например, ‘meta_value’ для сортировки по значению поля).


$args = array(
    'meta_key' => 'custom_field',
    'orderby' => 'meta_value',
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        // Вывод поста
    }
    wp_reset_postdata();
} else {
    // Постов не найдено
}

Как получить список постов, отсортированных по рейтингу?

Для получения списка постов, отсортированных по рейтингу, можно использовать класс WP_Query и установить параметр ‘orderby’ в значение ‘meta_value_num’. Это позволит отсортировать посты по числовому значению пользовательского поля, которое представляет собой рейтинг.


$args = array(
    'meta_key' => 'rating',
    'orderby' => 'meta_value_num',
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        // Вывод поста
    }
    wp_reset_postdata();
} else {
    // Постов не найдено
}

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

Обсуждение