1

J'ai ajouté le code suivant sur l'une de mes pages d'archive, juste avant la boucle. J'ai besoin de cette archive particulière pour afficher dans l'ordre alphabétique, plutôt que chronologique. Cela fait ce qu'il est censé faire.Exclure un terme de taxonomie personnalisé WordPress de query_posts()

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

Je aussi besoin pour exclure un terme de taxonomie particulière. Ma taxonomie est appelée "type d'entreprise", et je veux qu'elle exclue le terme "vedette". Je suis capable de filtrer pour montrer seulement ce terme de taxonomie en ajoutant &company-type=featured, mais je dois accomplir le contraire.

Tout ce que j'ai trouvé qui prétend accomplir ceci utilise une syntaxe très différente. J'ai essayé de faire correspondre mes arguments actuels à cette syntaxe, mais pas de chance, et je n'arrive pas à comprendre comment cela rentrerait dans cet exemple. Les exemples que j'ai vus utilisent le paramètre tax_query, mais je n'arrive pas à le faire fonctionner avec mon code.

Je sais qu'il y a probablement plusieurs façons d'accomplir cela, et j'ai lu qu'utiliser query_posts n'est pas forcément la meilleure solution, mais c'est la seule que j'ai eu à travailler jusqu'à maintenant. Quelqu'un peut-il m'aider?

+0

Cochez cette [question] (http://wordpress.stackexchange.com/questions/12217/how-do-i-exclude-a-custom-taxonomy-from-the-post-loop). Cela vous aidera. – Gunaseelan

+0

Merci, @Gunaseelan. J'ai vu ce message dans ma recherche initiale, et j'ai essayé d'implémenter le reste de mon code en utilisant ce format, mais je n'ai pas réussi à le faire fonctionner. –

Répondre

0

D'accord, je l'ai fonctionné. J'ai utilisé une syntaxe différente, que j'avais essayée plusieurs fois, mais cela ne fonctionnait pas pour moi parce que je ne savais pas comment inclure les arguments originaux de mon $query_string avec.

Il existe une fonction WordPress appelée wp_parse_args qui vous permettra d'obtenir le même format pour vous. C'est le code que j'ai fini avec. (J'ai aussi passé à WP_Query au lieu de query_posts, maintenant que je comprends pourquoi il ne fonctionnait pas pour moi avant.)

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

Bien que vous soyez passé à "WP_Query", "query_posts()" est juste une manière horrible d'effectuer des requêtes personnalisées et devrait être ** JAMAIS JAMAIS ** utilisé –