WP_Query нужен для вывода постов, например:

  • из определенной категории или по определенным тегам;
  • за определенный промежуток времени;
  • создание виджетов «Новое на блоге», «Популярные», «Случайные записи» и т.д.;
  • расширенный поиск на сайте
    и т.д.

Например:

array ( 
           'post_type' => 'post', 
           'posts_per_page' => 3, 
           'order' => 'DESC',
           'category__not_in' =>  array( 8, 9, 5 ),
           'ignore_sticky_posts' => true
)

Параметры класса WP_Query, функций query_posts() и get_posts()

author
(целое число) id автора.

author_name
(строка) «user_nicename» автора, обычно совпадает с логином.

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

category_name
(строка) ярлык категории (записи из подкатегорий тоже будут учитываться).

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

category__in
(массив) отобразить записи, содержащиеся в одной из перечисленных категорий (нужно указать ID), отличается от cat тем, что записи из вложенных рубрик не учитываются.

category__not_in
(массив) исключить записи, содержащиеся в одной из перечисленных категорий.

tag
(строка) ярлык тега (метки). Можно указать несколько значений через запятую.

Если нужно, чтобы пост содержал каждую из меток, то их надо разделить знаком «+»

tag_id
(целое число) id метки.

tag__and
(массив) отобразить записи, содержащие каждую из этих меток.

tag__in
(массив) отобразить записи, содержащие хотя бы одну из перечисленных меток (нужно указать их id).

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

tag_slug__and
(массив) аналогично tag__and, но только вместо id меток надо указать их ярлыки.

tag_slug__in
(массив) аналогично tag__in, но только вместо id меток надо указать ярлыки.

tax_query (доступна с версии 3.1)
(массив массивов) состоит из:

  • taxonomy (строка) — название таксономии,
  • field (строка) — производить выбор по «id» или «slug»,
  • terms (целое|строка|массив) — ID(ы) или ярлык(и) таксономии, в зависимости от предыдущего параметра,
  • include_children (логическое) — нужно ли включить вложенные таксономии (по умолчанию — true),
  • operator (строка) — описывает логическое взаимодействие между элементами массива в параметре terms, возможные значения:
    • IN — принадлежит хотя бы одной рубрике (по умолчанию),
    • AND — принадлежит каждой рубрике,
    • NOT IN — не принадлежит ни одной из указанных рубрик;

relation
(строка) описывает логическое взаимодействие между массивами, содержащимися в tax_query, параметры такие же, как и у operator.

p
(целое число) ID записи.

name
(строка) ярлык записи.

page_id
(целое число) ID страницы.

Следующие два примера эквивалентны друг другу:

pagename
(строка) ярлык страницы.

post_parent
(целое число) вывести все страницы, для которых родительской является страница с указанным id.

Также вложенные страницы можно отобразить при помощи ярлыков, сначала указываете ярлык родительской страницы, потом «/», а потом ярлык вложенной страницы.

post__in
(массив) какие записи следует включить в цикл.

post__not_in
(массив) какие записи не следует включать.

post_type
(строка|массив) тип поста.

  • post — записи, посты (по умолчанию),
  • page — страницы,
  • attachment — вложения, файлы
  • revision — редакции (не черновики),
  • any — все, кроме редакций и постов с параметром exclude_from_search=true,
  • созданный вами тип поста, например game;

post_status
(строка) статус записи.

  • publish — опубликованный пост или страница (по умолчанию),
  • pending — ожидает модерации,
  • draft — черновик,
  • auto-draft — только что созданный пост, без контента,
  • future — пост, который запланирован на публикацию в будущем,
  • private — невидимый для незарегистрированных пользователей,
  • inherit — необходимо указывать при выводе редакций или вложений (либо any),
  • trash — то, что находится в корзине (начиная с версии 2.9),
  • any — все, кроме постов с параметром exclude_from_search=true;

posts_per_page (доступен с версии 2.1)
(целое число) количество записей, отображаемых на одной странице;

nopaging
(логическое) запретить постраничную навигацию.

  • false — нет (по умолчанию)
  • true — да

paged
(целое число) отобразить записи, находящиеся на определенной странице,

offset
(целое число) количество записей, которые нужно пропустить. Если вы указываете значение для offset, то параметр paged будет проигнорирован!

Параметры сортировки

orderby
(строка) сортировать по:

  • none — не сортировать,
  • ID — по id,
  • author — по имени автора,
  • title — по заголовку,
  • date — по дате публикации (по умолчанию),
  • modified — по дате последнего изменения,
  • parent — по id родительских страниц,
  • rand — случайным образом,
  • comment_count — по количеству комментариев (начиная с версии 2.9),
  • menu_order — сортировать по указанному порядку, по умолчанию в WordPress уже есть инструменты для установки собственного порядка страниц и вложений:
  • meta_value — по значению мета-данных поста (произвольного поля), при этом в цикле должен присутствовать параметр meta_key;используется только для сортировки строковых значений,
  • meta_value_num — по значению произвольного поля, для сортировки чисел,
  • post__in — использовать порядок, заданный в параметре post__in (с версии 3.5);

order
(строка) порядок сортировки.

  • ASC — по возрастанию (1, 2, 3; a, b, c),
  • DESC — по убыванию (3, 2, 1; c, b, a) (по умолчанию);

Дата и время

year
(целое число) год публикации,

monthnum
(целое число) месяц публикации (от 1 до 12),

w
(целое число) неделя публикации (от 0 до 53),

day
(целое число) день публикации (от 1 до 31),

hour
(целое число) час (от 0 до 23),

minute
(целое число) минута (от 0 до 60),

second
(целое число) секунда (от 0 до 60);

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

meta_key
(строка) название произвольного поля,

meta_value
(строка) значение произвольного поля,

meta_value_num
(число) значение произвольного поля,

meta_compare
(строка) оператор сопоставления значений произвольного поля, может принимать значения: ‘!=’, ‘>’, ‘>=’, ‘<‘ или ‘<=’. По умолчанию ‘=’;

meta_query
(массив массивов) состоит из:

  • key (строка) — название произвольного поля,
  • value (строка|массив) — значение произвольного поля (параметр может быть опущен, если для сравнения используются операторы ‘EXISTS’ или ‘NOT EXISTS’ — доступны, начиная с 3.5 )
  • compare (строка) — оператор сопоставления, возможные значения: ‘=’ (по умолчанию), ‘!=’, ‘>’, ‘>=’, ‘<‘, ‘<=’, ‘LIKE’, ‘NOT LIKE’, ‘IN’, ‘NOT IN’, ‘BETWEEN’, ‘NOT BETWEEN’, ‘EXISTS’ и ‘NOT EXISTS’,
  • type (строка) — тип данных значения произвольного поля, например ‘NUMERIC’, ‘BINARY’, ‘CHAR’ (по умолчанию), ‘DATE’, ‘DATETIME’, ‘DECIMAL’, ‘SIGNED’, ‘TIME’, ‘UNSIGNED’.

relation
(строка) описывает логическое взаимодействие между массивами, содержащимися в meta_query.

Другие параметры

fields
(строка) в каком виде выводить результат:

  • ids — массив составленный из ID элементов (постов), кстати посмотреть на вид самих массивов вы можете через функцию print_r() или заглянув в пост про get_terms(),
  • id=>parent — ассоциативный массив состоящих из ID элементов и ID их родителей, при этом, если родительского элемента не существует, то возвращается 0, пример:
  • по умолчанию выводится массив объектов постов;

s
(строка) поиск постов по указанному ключевому слову, например: $q = new WP_Query( ‘s=wordpress’ ).

Источник: https://misha.blog/wordpress/wp_query.html


0 комментариев

Добавить комментарий

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