Intereting Posts
Как получить только URL следующей страницы (без тега <a>) Добавьте пользовательские PHP и HTML в the_content () Одна версия WordPress для основного сайта в домене и блоге на blog.domain.com? Есть ли простой способ показывать рекламу только на странице WordPress, когда она станет популярной? отображение тегов в виджетах Авторский код отслеживания! Добавьте несколько фильтров таксономии в edit.php, которые поддерживают поиск Как проверить, имеет ли категория родительские и дочерние категории? Удалить сообщения Ссылка быстрого редактирования для конкретной роли пользователя? WP 3.3 Custom walker nav – Добавить последовательный номер как класс Исключить пользовательский post_type в создании Sitemap? WP_Query на основе параметров URL Есть ли способ получить минимальные функции WordPress для iframed-контента? найти элемент стручков, где не установлено отношение к другому контейнеру Как получить миниатюру от прикрепления сообщения в этом цикле

как запрашивать сообщения по категориям и тегам?

Я пытаюсь показать список сообщений, связанных с категорией X и тегом Y. Я пробовал следующий код:

$args = array( 'posts_per_page' => 4, 'tag_id' => $tag_id, 'cat' => $cat_id, ); query_posts($args); 

но он работает некорректно и возвращает все сообщения в co \ ategory.

Хотелось бы услышать любое понимание, которое у вас может быть

Solutions Collecting From Web of "как запрашивать сообщения по категориям и тегам?"

Изменить: см. Ниже для правильного способа запроса пересечений категорий и тегов.

 global $wp_query; $args = array( 'category__and' => 'category', 'tag__in' => 'post_tag', //must use tag id for this field 'posts_per_page' => -1); //get all posts $posts = get_posts($args); foreach ($posts as $post) : //do stuff endforeach; 

Я думаю, что это ошибка в WordPress, которая была прокомментирована в другом месте, попробуйте использовать имя тега, а не идентификатор, тогда он должен работать:

 $args = array( 'posts_per_page' => 3, 'tag' => 'review', 'cat' => 9, ); query_posts($args); 

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

Я наткнулся на эту же проблему и разрешил ее, выполнив запрос MySQL.

вкратце: get_post ($ args) вернет вам сообщения, у которых есть категория = MyCategory или тег = MyTag.

вы хотите изменить OR или AND .

моя логика заключалась в том, чтобы идти прямо с MySQL Query:

  • Query 1 = Выбрать все должности, у которых есть категория MyCat
  • Query 2 = Выбрать все сообщения, у которых есть тег MyTag
  • FinalLY: выберите все сообщения, которые находятся в Query 1 AND Query 2.

Я использовал wpdb вместо query_post ();

Немного кода (возврат опубликованных сообщений с категорией MyCat и тегом MyTag) :

  $query_byTag=" SELECT wp_posts.ID FROM wp_posts, wp_term_relationships, wp_terms WHERE wp_posts.ID = wp_term_relationships.object_id AND wp_terms.term_id = wp_term_relationships.term_taxonomy_id AND wp_terms.name = 'MyTag'"; $query_byCat=" SELECT wp_posts.ID FROM wp_posts, wp_term_relationships, wp_terms WHERE wp_posts.ID = wp_term_relationships.object_id AND wp_terms.term_id = wp_term_relationships.term_taxonomy_id AND wp_terms.name = 'MyCat'"; $query =" SELECT wp_posts.post_title AS title , wp_posts.post_content AS content, wp_posts.post_date AS blogdate FROM wp_posts WHERE wp_posts.post_status = 'publish' AND wp_posts.ID IN (".$query_byTag.") AND wp_posts.ID IN (".$query_byCat.") ORDER BY wp_posts.post_date DESC "; $result= $wpdb->get_results($query); 

Это грязный способ сделать это, но я надеюсь, что это поможет =)

Этот код работает:

 $args = array( 'tag' => get_queried_object()->slug, // If permalink like example.com/tag/example-tag, etc. 'posts_per_page' => -1, 'tax_query' => array( array( 'taxonomy' => 'category', // Taxonomy, in my case I need default post categories 'field' => 'slug', 'terms' => 'interior', // Your category slug (I have a category 'interior') ), ) ); // Get all posts $posts_new = get_posts( $args ); 
 SELECT wp_posts.post_name FROM wp_posts, wp_term_relationships, wp_terms, wp_term_taxonomy WHERE wp_posts.ID = wp_term_relationships.object_id AND wp_terms.term_id = wp_term_taxonomy.term_id AND wp_term_taxonomy.term_taxonomy_id = wp_term_relationships.term_taxonomy_id AND wp_terms.name = "MY TAG"