2013-10-01 3 views
4

Я пишу цикл wordpress, и я хочу получить все сообщения, у которых нет назначенных им терминов. Есть ли простой способ сделать это? Или я действительно должен получить весь термин идентификаторов и сделать налоговый запрос, как это:Получите все сообщения, у которых нет условий с WP_Query

// Get all the term id's 
$terms = array(); 
$terms = getAllTheTerms(); 

// Create an arguments which get all the posts that do not have a term with any 
// of the id's. 
$args = array(
    'post_type' => 'post', 
    'tax_query' => 
     array(
      'taxonomy' => 'actor', 
      'field' => 'id', 
      'terms' => $terms, 
      'operator' => 'NOT IN' 
    ) 
); 
$query = new WP_Query($args); 

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

ответ

1

Вы можете попробовать это

$args = array(
    'post_type' => 'post', 
    'tax_query' => 
     array(
      'taxonomy' => 'actor', 
      'field' => 'slug', 
      'terms' => '', 
    ) 
); 
$query = new WP_Query($args); 
+4

Это не работает на 3,8, по крайней мере. – Jake

0
$terms = get_terms($taxonomy, array('fields'=>'ids')); /* GET ALL TERMS FROM A TOXNOMY */ 
$args = array(
    'tax_query' => array(
     array(
      'taxonomy' => $taxonomy, 
      'field' => 'term_id', 
      'terms' => $terms, 
      'operator' => 'NOT IN' /* DO THE MAGIC - Get all post that no in the taxonomy terms */ 
     ) 
    ) 
); 
$the_query = new WP_Query($args); 
+0

Добавьте еще несколько пояснений к вашему ответу. –

Смежные вопросы