Wie kann man andere Beiträge zählen, die keine spezifischen Taxonomiebegriffe haben?

Ich habe einen benutzerdefinierten Beitragstyp “Buch” und eine Taxonomie “Sprache” mit Begriffen “PHP”, “Java”, “C”, “Python”. Ich möchte “book” -Beiträge zählen, die keine Begriffe “java” & “c” haben, so dass Beiträge mit nur “java” oder “c” gezählt werden sollten, aber Beiträge mit “java” und “c” sollten nicht gezählt werden . Ich habe tax_query von WP_QUERY mit dem Operator “NOT IN” und “=” versucht, aber keine richtige Antwort erhalten. Es sollte “NAND” -Operator für tax_query geben.

PS: Ich habe ca. 20 Begriffe und 200 Beiträge für jeden. Mit dieser tax_query habe ich auch 1 UND tax_query hinzugefügt und das ist für andere Taxonomie Begriffe.

$myargs=array( 'posts_per_page' => -1, 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'author', 'field' => 'slug', 'terms' => array( 'ABC', 'XYZ' ), ), array( 'taxonomy' => 'language', 'field' => 'slug', 'terms' => array( "c", "java"), 'operator' => 'NOT IN', ), ), 'post_type' => 'book');

Ein Buch kann einen oder mehrere Sprachbegriffe haben.

Solutions Collecting From Web of "Wie kann man andere Beiträge zählen, die keine spezifischen Taxonomiebegriffe haben?"

Es gibt keinen NAND Operator für die tax_query von WP_Query . Wenn ich richtig verstanden habe, kann das, was Sie beabsichtigen, auf diese Weise neu geschrieben werden:

  1. Erhalten Sie alle Beiträge ohne den Begriff c .
  2. Erhalten Sie alle Beiträge ohne den Begriff java .
  3. Schließen Sie die Beiträge aus, die sowohl die Begriffe c als auch java .

Um dies zu erreichen, können Sie zwei NOT IN Abfragen kombinieren und sie mit einem OR :

 $args = array( 'post_type' => 'book', 'tax_query' => array( 'relation' => 'OR', array( 'taxonomy' => 'language', 'field' => 'slug', 'terms' => array( 'c' ), 'operator' => 'NOT IN', ), array( 'taxonomy' => 'language', 'field' => 'slug', 'terms' => array( 'java' ), 'operator' => 'NOT IN', ), ) ); $posts = get_posts( $args ); echo count( $posts ); 

Hey Leute, irgendwie hat mir das geholfen, NAND-Operationen zu zählen. Da ich diese Beiträge nicht durchlaufen muss, habe ich found_posts von WP_Query . Subtrahieren der Anzahl meiner Beiträge von der Gesamtzahl der Posts

Ich warte immer noch auf einen besseren Weg. Danke Luis .

 $myargs=array( 'posts_per_page' => -1, 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'author', 'field' => 'slug', 'terms' => $author_terms //array of author term slug(s), 'operator' => 'IN' //default operator ? ), array( 'taxonomy' => 'language', 'field' => 'slug', 'terms' => $language_terms //array of language term slug(s) 'operator' => 'AND' ) ), 'post_type' => 'apk'); $allargs=array( 'posts_per_page' => -1, 'tax_query' => array( array( 'taxonomy' => 'author', 'field' => 'slug', 'terms' => $author_terms //array of author term slug(s), 'operator' => 'IN' //default operator ? ) ), 'post_type' => 'apk'); $myquery=new WP_Query($myargs); $allquery=new WP_Query($allargs); echo allquery->found_posts - $myquery->found_posts;