1

Ich habe den folgenden Code auf einer meiner Archivseiten direkt vor der Schleife hinzugefügt. Ich brauche dieses bestimmte Archiv in alphabetischer Reihenfolge und nicht chronologisch. Das macht, was es tun soll.Einen WordPress-Ausdruck für benutzerdefinierte Taxonomie aus query_posts() ausschließen

global $query_string; 
$posts = query_posts($query_string . '&orderby=title&order=asc&posts_per_page=-1'); 

ich auch es brauchen eine bestimmte Taxonomieausdruck auszuschließen. Meine Taxonomie heißt "Unternehmenstyp", und ich möchte, dass der Begriff "gekennzeichnet" ausgeschlossen wird. Ich bin in der Lage, es zu filtern, um NUR diesen Taxonomiebegriff anzuzeigen, indem ich &company-type=featured hinzufüge, aber ich muss das Gegenteil erreichen.

Alles, was ich gefunden habe, dies zu tun, verwendet eine sehr andere Syntax. Ich habe versucht, meine aktuellen Argumente mit dieser Syntax abzugleichen, aber kein Glück, und ich kann nicht herausfinden, wie es in dieses Beispiel passen würde. Die Beispiele, die ich gesehen habe, verwenden den Parameter tax_query, aber ich kann nicht mit meinem Code arbeiten.

Ich weiß, es gibt wahrscheinlich mehrere Möglichkeiten, dies zu erreichen, und ich habe gelesen, dass query_posts ist nicht unbedingt die beste Lösung, aber es ist die einzige, die ich bisher arbeiten. Kann mir jemand helfen?

+0

prüfen diese [Frage] (http://wordpress.stackexchange.com/questions/12217/how-do-i-Ausschluss-a-custom-taxonomy-from-the-post-Schleife). Das wird dir helfen. – Gunaseelan

+0

Danke, @Gunaseelan. Ich habe diesen Post bei meiner ersten Suche gesehen, und ich habe versucht, den Rest meines Codes mit diesem Format zu implementieren, aber ich konnte es nicht zum Laufen bringen. –

Antwort

0

Okay, ich habe es funktioniert. Ich habe eine andere Syntax verwendet, die ich mehrmals versucht hatte, aber es hatte nicht funktioniert, weil ich nicht wusste, wie ich die Originalargumente aus meiner $query_string damit einbinden sollte.

Es gibt eine WordPress-Funktion namens wp_parse_args, die sie in das gleiche Format für Sie bekommen wird. Dies ist der Code, mit dem ich gelandet bin. (Ich wechselte auch WP_Query statt query_posts, jetzt, dass ich verstehe, warum es nicht, bevor sie für mich arbeitete.)

global $query_string; 

$args = array( 
    'tax_query' => array (
    array(
     'taxonomy' => 'company-type', // My Custom Taxonomy 
     'terms' => 'featured', // My Taxonomy Term that I wanted to exclude 
     'field' => 'slug', // Whether I am passing term Slug or term ID 
     'operator' => 'NOT IN', // Selection operator - use IN to include, NOT IN to exclude 
    ), 
), 
    'posts_per_page' => -1, 
    'orderby' => 'title', 
    'order'=>'ASC' 
); 

$args = wp_parse_args($query_string, $args); 
$query = new WP_Query($args); 
+0

Gut, dass Sie zu 'WP_Query' gewechselt haben,' query_posts() 'ist nur eine schreckliche Möglichkeit, benutzerdefinierte Abfragen durchzuführen und sollte ** NIEMALS ** verwendet werden –

Verwandte Themen