Исключить категорию из вывода пользовательских таксономий - PullRequest
0 голосов
/ 07 июня 2010

Я использую запрос ниже для вывода всех ссылок из пользовательской таксономии. Он выводит все сообщения, помеченные как «http» из таксономических «слов».

Я бы хотел исключить некоторые общие категории из вывода. Итак, фе. он выводит только ссылки в категориях СМИ и новостей. Каков наилучший способ достичь этого?

$wp_query->request = "

SELECT DISTINCT *

FROM $wpdb->posts

LEFT JOIN $wpdb->term_relationships ON($wpdb->posts.ID = $wpdb->term_relationships.object_id)

LEFT JOIN $wpdb->term_taxonomy ON($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)

LEFT JOIN $wpdb->terms ON($wpdb->term_taxonomy.term_id = $wpdb->terms.term_id)

WHERE $wpdb->posts.post_type = 'post' 

AND $wpdb->posts.post_status = 'publish'

AND $wpdb->term_taxonomy.taxonomy = 'words'

AND $wpdb->terms.slug = 'http'

ORDER BY $wpdb->posts.post_date DESC

LIMIT $ppp OFFSET $offset";

$pagelinkposts = $wpdb->get_results($wp_query->request, OBJECT);

1 Ответ

0 голосов
/ 08 июня 2010

Я как-то сам нашел решение, используя коды из другого плагина. Если кто-то хочет добиться того же, добавьте приведенное ниже перед строкой ORDER BY (и измените идентификаторы категорий на те, которые вы хотите включить).

AND object_id IN
           (
            SELECT object_id
            FROM $wpdb->term_relationships AS r
            JOIN $wpdb->term_taxonomy AS x ON x.term_taxonomy_id = r.term_taxonomy_id
            JOIN $wpdb->terms AS t ON t.term_id = x.term_id
            WHERE   x.taxonomy = 'category'
            AND t.term_id IN  (category-ids))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...