Cette réponse fournit le code d'une requête renvoyant une correspondance OR sur un terme de taxonomie:
global $ query_string; $ args ['tax_query'] = array ( array ( 'taxonomy' => 'status' , 'termes' => tableau ('disponible', 'en attente') // remplace par "vendu" pour la 2e requête , 'champ' => 'slug' ), );
J'aimerais que mon modèle de taxonomie récupère les valeurs de terme pour le tableau (, "terms" => array ("disponible", "en attente")) à partir de l'URL, de la même manière que pour le terme unique.
Le but est de permettre aux termes de taxonomie de changer avec le temps, sans avoir à coder de manière irréfutable les modèles de page pour des combinaisons d'intérêt particulières. Ainsi, s'il existe un meilleur moyen, suggérez-le.
Merci à cet article j’ai mis en correspondance permaliens des fichiers modèles comme suit:
example.com/cptslugs est mappé sur mon modèle archive-cptname.php. example.com/cptslug/cpt-post est mappé sur mon modèle single-cptname.php. example.com/cptslugs/ctxslug/term correspond à mon modèle taxonomy-ctxname.php.
J'aimerais avoir quelque chose comme:
example.com/cptslugs/ctxslug/term1/term2/
mappez vers mon modèle taxonomy-ctxname.php tel que get_query_var ('term') retourne un tableau de termes (term1, term2) à partir de l'URL.
mais si je pouvais obtenir
example.com/cptslugs/ctxslug/?terms=term1,term2
mapper vers mon modèle taxonomy-ctxname.php tel que get_query_var ('term') retourne un tableau de termes (term1, term2) à partir de l'URL, éventuellement via une règle de réécriture et un filtre, ce serait également correct.
Mais dans tous les cas, l’idée est que le fichier modèle fonctionne, qu’il soit passé par un terme ou par un tableau de termes.
UPDATE
Ok - @scribu à la rescousse! -- peut être. Gardé la recherche, et c'est ce que j'ai trouvé. Je pensais avoir tout compris, mais je n'arrive pas à le faire fonctionner.
? tax1 = terme1, terme2 & taxe2 = terme2 + terme3
cartes à:
query_posts (array ( 'tax1' => 'term1, term2', 'tax2' => 'term3 + term4' ));
qui correspond à:
query_posts (array ( 'tax_query' => array ( array ( 'taxonomy' => 'tax1', 'field' => 'slug', 'terms' => array ('term1', 'term2'), 'operator' => 'OU' ), array ( 'taxonomy' => 'tax2', 'field' => 'slug', 'terms' => array ('terme3', 'terme4 '), ' opérateur '=>' ET ' ), ));
example.com/?ctxname=term1,term2
rend le modèle de page de garde. Révision: il rend taxonomy-ctxname.php lorsque vous épelez correctement ctxname. Imager cela!
example.com/?cptslug/ctxslug=term1,term2
(la taxonomie est enregistrée avec un slug de cptslug/ctxslug) rend également le modèle de page de garde.
example.com/cptslug/?ctxslug=term1+term2
affiche le modèle archive-ctpname.php.
Comment obtenir une URL qui rend le modèle taxonomy-ctxname.php ou le modèle taxonomy.php?
Ensuite, une fois que j'ai compris cela - les suggestions pour de jolies URL sont les bienvenues mais pas absolument nécessaires.
UPDATE TWO
example.com/?ctxname=term1,term2
et
example.com/ctpslugs/ctxslug/term1,term2/
Les deux rendent taxonomy-ctxname.php comme vous le souhaitez. Voir les détails dans ma réponse, posté ci-dessous.
Après avoir ajouté
print_r ($ wp_query);
à mon modèle et en examinant les résultats, j'ai découvert des formats d'URL qui fonctionnent. Dans ma question, j’écrivais que le format suivant ne fonctionnait pas - en fait, il le faisait si vous épeliez correctement votre nom de taxonomie personnalisé.
example.com/?ctxname=term1+term2
Les jolies URL avec les opérateurs '+' et ',' (indiquant respectivement AND et OR) ne sont reconnues que lorsque pas URL-encodé.
example.com/cptslugs/ctxslug/term1,term2/
produit l'objet WP_Tax_Query suivant
[tax_query] => Objet WP_Tax_Query ( [requêtes] => Array ( [0] => Array ( [taxonomy] => annoncements_cats [termes] => Tableau ( [0] => terme1 [1] = > terme2 ) [include_children] => 1 [champ] => slug [opérateur] => IN ) [1] => Tableau ( [Taxonomie] => catégorie [Termes] => Tableau ( [0] => 1 ) [include_children] => [field] => term_id [operator] => PAS IN ) ) [relation] => ET )
Tandis que
example.com/cptslugs/ctxslug/term1+term2/
produit l'objet WP_Tax_Query suivant
[tax_query] => Objet WP_Tax_Query ( [requêtes] => Array ( [0] => Array ( [taxonomie] => ctxname [termes] => Tableau ( [0] => terme1 ) [include_children] => 1 [field] => limace [opérateur] => IN ) [1] => Tableau ( [Taxonomie] => ctxname [Termes] => Tableau ( [0] = > terme2 ) [include_children] => 1 [.__ __.] [champ] => slug [opérateur] => IN ) [2] => Tableau ( [taxonomie] => catégorie [termes] => Tableau ( [0] => 1 ) [include_children] => [field] => term_id [operator] => NOT IN ) ) [relation] => ET )
P.S .: Selon à ceci: le '+' et le ',' sont des 'Caractères Réservés' et peuvent être utilisés dans le chemin, les paramètres et le fragment d'un URI, mais peuvent ne pas apparaître dans les autres parties d'un URI. Je suppose que c'est bon après tout. Cela semble juste "faux" d'une certaine manière, cependant.