2017-11-17 1 views
0

Ich brauche alle meine Beiträge in WordPress nur aus meiner Kategorie 6 und nur diese, ich möchte keine Beiträge mit 2 Kategorien wie Beiträge "X" hat Kategorien 6 und 9.
I bin auf diesem Teil meiner Frage stecken geblieben und will wissen, ob ich NICHT IN benutzen sollte, und wenn das meine Abfrage zu viel langsamer macht?Wordpress Kategorie/Taxonomie Abfrage

+0

Sie können Ihre Beiträge im Frontend anzeigen? Keine Notwendigkeit, eine SQL-Abfrage zu machen. Sie können eine native WordPress-Methode verwenden, denke ich. –

+0

Nein, ich möchte nur die Daten eine mobile Front mit nur einer bestimmten Kategorie machen, wird nicht WordPress in dieser App verwenden –

Antwort

0

Ich denke, Sie müssen alle Begriffe und entfernen Sie alle Begriffe IDs, die nicht gleich terms_id, die Sie wollten.

überprüfen Sie dies. Ich habe einige Kommentare hinzugefügt, um den Prozess zu erklären

function get_posts_from_single_cat($cat_id) { 
    // Get all the categories 
    $cats = get_terms(array('taxonomy'=>'category')); 
    $cats_ids = array(); 
    foreach($cats as $cat) { 
     // Check if the category is NOT equal to the category that we want 
     // Then we add it into array 
     if($cat->term_id !== $cat_id) { 
      $cats_ids[] = $cat->term_id; 
     } 
    } 

    // then we create WP_Query with the category that we want and checking that its not in the other categories 
    $args = array(
     'post_type' => 'post', 
     'tax_query' => array(
      'relation' => 'AND', 
      array(
       'taxonomy' => 'category', 
       'field' => 'term_id', 
       'terms' => array($cat_id) 
      ), 
      array (
       'taxonomy' => 'category', 
       'field' => 'term_id', 
       'terms' => $cats_ids, 
       'operator' => 'NOT IN' 
      ) 
     ), 
    ); 
    $query = new WP_Query($args); 
    // then do something with the posts... 
}