Title: WP_Query post_format
Last modified: 19.09.2021

---

# WP_Query post_format

 *  [mi13](https://ru.wordpress.org/support/users/mi13/)
 * (@mi13)
 * [4 года, 8 месяцев назад](https://ru.wordpress.org/support/topic/wp_query-post_format/)
 * Добрый день!
    На странице плагина пытаюсь получить записи стандартного формата,
   но при разных манипуляциях с кодом выводятся все записи, всех форматов (gallery,
   video,audio,text).
 * Пробывал..
 *     ```
       $args = array(
       'posts_per_page' => 10,
       'post_type' => 'post',
       'paged' => $paged,
       'tax_query' => array(
       'taxonomy' => 'post_format',
       'field' => 'slug',
       'terms' => ['post-format-standard']
       )
       );
       $posts = new WP_Query($args);
       ```
   
 * но не работает.
    `terms' => ['']` тоже не работает. А вот..
 *     ```
       $args = array(
       'posts_per_page' => 10,
       'post_type' => 'post',
       'post_format' => 'post-format-video',
       'paged' => $paged
       );
       ```
   
 * работает, но мне нужно получить только стандартные посты.
    Подскажите где я ошибся,
   или это баг wp.

Просмотр 12 ответов — с 1 по 12 (всего 12)

 *  Модератор [Юрій](https://ru.wordpress.org/support/users/yube/)
 * (@yube)
 * [4 года, 8 месяцев назад](https://ru.wordpress.org/support/topic/wp_query-post_format/#post-12215985)
 * tax_query — массив массивов, а не простой плоский массив. Посмотрите примеры 
   в документации.
 *  Автор [mi13](https://ru.wordpress.org/support/users/mi13/)
 * (@mi13)
 * [4 года, 8 месяцев назад](https://ru.wordpress.org/support/topic/wp_query-post_format/#post-12215991)
 * Благодарю Юрий за Ваш ответ.
 * В итоге..
    Чтобы получить только стандартные посты нужно исключить все остальные???
 *     ```
       'terms' => array( 
       	'post-format-aside',
       	'post-format-audio',
       	'post-format-chat',
       	'post-format-gallery',
       	'post-format-image',
       	'post-format-link',
       	'post-format-quote',
       	'post-format-status',
       	'post-format-video'
       	),
        'operator' => 'NOT IN'
       )
       ```
   
 *  Модератор [Юрій](https://ru.wordpress.org/support/users/yube/)
 * (@yube)
 * [4 года, 8 месяцев назад](https://ru.wordpress.org/support/topic/wp_query-post_format/#post-12215993)
 * Разве я написал про исключить?
    Смотрим пример в [https://developer.wordpress.org/reference/classes/wp_query/#taxonomy-parameters](https://developer.wordpress.org/reference/classes/wp_query/#taxonomy-parameters)
   и допиливаем запрос
 *     ```
       $args = array(
           'posts_per_page' => 10,
           'post_type' => 'post',
           'paged' => $paged,
           'tax_query' => array(
               array(
                   'taxonomy' => 'post_format',
                   'field' => 'slug',
                   'terms' => ['post-format-standard']
               ),
           ),
       );
       $posts = new WP_Query($args);
       ```
   
 *  Автор [mi13](https://ru.wordpress.org/support/users/mi13/)
 * (@mi13)
 * [4 года, 8 месяцев назад](https://ru.wordpress.org/support/topic/wp_query-post_format/#post-12215998)
 * Юрий, данная конструкция возвращает пустоту..
 *     ```
       'tax_query' => array(
       	array(
       		'taxonomy' => 'post_format',
       		'field' => 'slug',
       		'terms' => array( 
       		'post-format-standard'
       		)
       	)
       )
       ```
   
 * А если стандарт поменять на видео то работает!?
 *  Модератор [Юрій](https://ru.wordpress.org/support/users/yube/)
 * (@yube)
 * [4 года, 8 месяцев назад](https://ru.wordpress.org/support/topic/wp_query-post_format/#post-12215999)
 * Я про синтаксис.
 * Что есть у Вас в базе и почему оно не выбирается, можно проверить припомощи плагина
   query monitor и инструмента phpmyadmin: находим запрос, копируем и выполняем 
   его в pma; если результат не такой, как ожидается, смотрим, что можно изменить
   |удалить|добавить.
 *  Автор [mi13](https://ru.wordpress.org/support/users/mi13/)
 * (@mi13)
 * [4 года, 8 месяцев назад](https://ru.wordpress.org/support/topic/wp_query-post_format/#post-12216002)
 * 17 SELECT wp_posts.*
    FROM wp_posts WHERE 1=1 AND wp_posts.post_type = ‘mi13_glossary’
   AND ((wp_posts.post_status = ‘publish’)) ORDER BY wp_posts.post_date DESC
 *  WP_Query->get_posts()
 *  Плагин: mi13-glossary 15 0,0000
    18 SELECT post_id, meta_key, meta_value FROM
   wp_postmeta WHERE post_id IN (3264,3263,3262,3261,3260,3259,3257,3256,3255,3253,3252,3251,3250,3249,3248)
   ORDER BY meta_id ASC
 *  update_meta_cache()
 *  Плагин: mi13-glossary 30 0,0000
    19 SELECT t.*, tt.* FROM wp_terms AS t INNER
   JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy IN (‘
   post_format’) AND t.slug IN (‘post-format-standard’)
 *  WP_Term_Query->get_terms()
 *  Плагин: mi13-glossary 0 0,0000
    20 SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM
   wp_posts WHERE 1=1 AND ( 0 = 1 ) AND wp_posts.post_type = ‘post’ AND ((wp_posts.
   post_status = ‘publish’)) GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC
   LIMIT 0, 10
 *  Автор [mi13](https://ru.wordpress.org/support/users/mi13/)
 * (@mi13)
 * [4 года, 8 месяцев назад](https://ru.wordpress.org/support/topic/wp_query-post_format/#post-12216003)
 * MySQL вернула пустой результат (т.е. ноль строк). (Запрос занял 0,0100 сек.)
 *  Модератор [Юрій](https://ru.wordpress.org/support/users/yube/)
 * (@yube)
 * [4 года, 8 месяцев назад](https://ru.wordpress.org/support/topic/wp_query-post_format/#post-12216005)
 * > MySQL вернула пустой результат
 * Последний из списка? Потому что `AND ( 0 = 1 )`. Надо разобраться, откуда оно
   берется.
 * По идее запрос должен выглядеть как-то так:
 *     ```
       SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID
       FROM  wp_posts
       LEFT JOIN  wp_term_relationships
       ON ( wp_posts.ID =  wp_term_relationships.object_id)
       WHERE 1=1
       AND (  wp_term_relationships.term_taxonomy_id IN (..тут список, вернувшийся от предыдущего запроса...) )
       AND  wp_posts.post_type = 'post'
       AND (( wp_posts.post_status = 'publish' ))
       GROUP BY  wp_posts.ID
       ORDER BY wp_posts.post_date DESC
       LIMIT 0, 10
       ```
   
 * Кстати, чему равно $paged?
 *  Автор [mi13](https://ru.wordpress.org/support/users/mi13/)
 * (@mi13)
 * [4 года, 8 месяцев назад](https://ru.wordpress.org/support/topic/wp_query-post_format/#post-12216006)
 *     ```
       if (isset($page)) $paged = intval($page);
       else $paged = (isset($_GET['n_page']) && intval($_GET['n_page'])>1) ? intval($_GET['n_page']) : 1;
       ```
   
 * Пагед выставил жестко в 1, тоже самое.
    Тему поменял, все плагины выключил, тоже
   самое.
 * Даже интересно!
 * Если я кину ссылку на яндекс диск, Вы сможете у себя глянуть?
 *  Модератор [Юрій](https://ru.wordpress.org/support/users/yube/)
 * (@yube)
 * [4 года, 8 месяцев назад](https://ru.wordpress.org/support/topic/wp_query-post_format/#post-12216008)
 * > Вы сможете у себя глянуть?
 * Нет. Слишком трудоемко воссоздавать среду, а живых тестовых сайтов с форматами
   у меня нет ни одного.
 *  Модератор [Юрій](https://ru.wordpress.org/support/users/yube/)
 * (@yube)
 * [4 года, 8 месяцев назад](https://ru.wordpress.org/support/topic/wp_query-post_format/#post-12216009)
 * Код, аналогиный
 *     ```
       $args = array(
           'posts_per_page' => 10,
           'post_type' => 'post',
           'paged' => $paged,
           'tax_query' => array(
               array(
                   'taxonomy' => 'post_format',
                   'field' => 'slug',
                   'terms' => ['post-format-standard']
               ),
           ),
       );
       $posts = new WP_Query($args);
       ```
   
 * но с другим типом, другой таксономией и слагом терма отлично сработал. Только
   что проверил.
 *  Автор [mi13](https://ru.wordpress.org/support/users/mi13/)
 * (@mi13)
 * [4 года, 8 месяцев назад](https://ru.wordpress.org/support/topic/wp_query-post_format/#post-12216011)
 * С другой термой и у меня работало.
    Всё равно спасибо за участие )

Просмотр 12 ответов — с 1 по 12 (всего 12)

Тема «WP_Query post_format» закрыта для новых ответов.

## Метки

 * [post_format](https://ru.wordpress.org/support/topic-tag/post_format/)
 * [wp_query](https://ru.wordpress.org/support/topic-tag/wp_query/)

 * Форум: [Проблемы и решения](https://ru.wordpress.org/support/forum/how-to-and-troubleshooting/)
 * 12 ответов
 * 2 участника
 * Последний ответ: [mi13](https://ru.wordpress.org/support/users/mi13/)
 * Последняя активность: [4 года, 8 месяцев назад](https://ru.wordpress.org/support/topic/wp_query-post_format/#post-12216011)
 * Статус: нерешённая

## Темы

### Самые популярные темы

### Темы без ответов

### Без вопроса

### Решённые

### Нерешённые

### Все темы
