Obtenir la taxonomie de la page actuelle
4 réponses
- votes
-
- 2011-01-07
J'avais doncbesoin d'extraire le terme d'une taxonomie connue donnée à unepage (comme ceci:
function register_prod_categoria() { register_taxonomy( 'prod-categoria', array( 'produtos', 'page' ),
(produtos étant untype depublicationpersonnalisé,justepourinfo.)).
J'aiessayé diverses choses,parmi lesquelles:
get_terms('prod-categoria','')
Celafonctionne,maisme donnetout surmataxonomie prod-categoria ,cen'estpas ce dontj'avaisbesoin.Ensuite,commeexpliqué dans le codex ,deuxparamètres (intéressantspourmoi) sont disponiblespour
get_terms()
: child_of et parent . Cela semblaitparfait,alorsje suis allé:get_terms('prod-categoria','child_of=marca');
et aussiget_terms('prod-categoria','parent=marca')
,marca étant untermeparent (de lataxonomiepersonnalisée prod-categoria ) dontje voulaisextraire lestermesenfants. Les deuxne m'ont donné aucun résultat. J'ai aussiessayé avec lenom Marca et le slug marca ,rien.La solution avec laquellej'ai aboutiest la suivante:
$tt = the_title('','',false);
. J'obtiens letitre de lapagepour l'utiliser commeparamètre après:$posts = posts_search ('produtos',array('prod-categoria'=>$tt,'prod-cols'=>'5-C-P-F-NF-P')); if($posts) { echo "<table class=\"table-marca\">"; foreach($posts as $post) { ... }
Btw,lafonctionposts_search () (trouvée sur http://wordpress.stackexchange.com ou http://stackoverflow.com sij'ai raison,je nem'en souvienspas avec certitude)permet defaire des requêtes surplusieurstaxonomies.
Je suistout àfait d'accordpour dire que c'est loin d'êtreparfait,letitre de lapage devant être égal aunom de lataxonomie,mais dansmon cas çamarche. Mercibeaucoup à Rarstet Piet d'avoiressayé denous aider.
So, i needed to extract the term of a know taxonomy given to a page (like this:
function register_prod_categoria() { register_taxonomy( 'prod-categoria', array( 'produtos', 'page' ),
(produtos being a custom post type, just for info.)).
I tried various things, among them, this:
get_terms('prod-categoria','')
This, works, but gives me everything about my taxonomy prod-categoria, which isn't what i needed.Then as explained in the codex, two (interesting for me) parameters are available for
get_terms()
: child_of and parent. This sounded perfect, so i went:get_terms('prod-categoria','child_of=marca');
and alsoget_terms('prod-categoria','parent=marca')
, marca being a term parent (from the custom taxonomy prod-categoria) from which i wanted to extract the child terms. Both gave me no results. I also tried with the name Marca and the slug marca, nothing.The solution i ended up with is this:
$tt = the_title('','',false);
. I'm getting the page title to use it as a parameter after:$posts = posts_search ('produtos',array('prod-categoria'=>$tt,'prod-cols'=>'5-C-P-F-NF-P')); if($posts) { echo "<table class=\"table-marca\">"; foreach($posts as $post) { ... }
Btw, the function posts_search() (found it on http://wordpress.stackexchange.com or http://stackoverflow.com if i'm right, don't remember for sure) allows to do queries on multiple taxonomies.
I agree very much that it's far away from being perfect, the title of the page having to be equal to the taxonomy name, but in my case it works. Thanks a lot to Rarst and Piet for trying to help.
-
- 2011-01-06
Comme Rarst,je ne comprendspas ce que vous voulez afficher,lataxonomie ou lestermes de cettetaxonomie.
Lataxonomiepeut être sortieparexemple si vous créez unfichiermodèle avec lenom de cettetaxonomie:nom-taxonomie.php
letitre de lataxonomie devient alors:
<h1 class="page-title"><<?php $term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) ); echo $term->name; ?></h1>
Lestermes d'unetaxonomiepeuvent êtregénérés avec untagcloud,voir http://codex.wordpress.org/Function_Reference/wp_tag_cloud (mais c'est dans laboucle)
Like Rarst, I am confused what you want to output, the taxonomy or the terms of that taxonomy.
Taxonomy can be output for example if you make a template file with the name of that taxonomy: taxonomy-name.php
the title of the taxonomy then becomes:
<h1 class="page-title"><<?php $term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) ); echo $term->name; ?></h1>
The terms within a taxonomy can be output with a tagcloud, see http://codex.wordpress.org/Function_Reference/wp_tag_cloud (but that is within the loop)
-
L'objectifest de sortir leterme d'unetaxonomie allouée à lapage courante.J'ai doncessayé defaire écho auxtermes demataxonomie avec wp_tag_cloud ()et cela afonctionné,je peux voir celui dontj'aibesoin de sortir aumilieu.Ensuite,j'aiessayé d'utiliser lafonctionget_term_by () que vousm'avez donnéemais sans succès.The objective is to output the term from a taxonomy allocated to the current page. So i tried to echo the terms within my taxonomy with wp_tag_cloud() and it worked, i can see the one i need to output in the middle. Then i tried to use the get_term_by() function you gave me but with no success.
- 0
- 2011-01-06
- kevin
-
J'ai égalementessayé de changer le deuxièmeparamètreen $post-> ID commeindiqué dans l'exemple http://codex.wordpress.org/Function_Reference/get_term_by#Examples sur lapage du codex,mais sans succèsnonplus.I also tried to change the second parameter to $post->ID as shown in the http://codex.wordpress.org/Function_Reference/get_term_by#Examples example on the codex page, but no success either.
- 0
- 2011-01-06
- kevin
-
- 2011-01-05
Je suppose que la
taxonomy
est lamêmeet que vous avezbesoin determs
dans cettetaxonomie,affectés à l'article?Lafonction debasniveaupour celaest
wp_get_object_terms()
.Il abesoin de l'ID de l'objet,donc si vous réinitialisez les données depublication,vous devrez les stockerplustôt ouextraire de la requête d'origine ($wp_query->get_queried_object_id()
pour autant queje me souvienne).I assume
taxonomy
is the same and what you need areterms
in that taxonomy, assigned to the post?Low level function for this is
wp_get_object_terms()
. It does need object's ID so if you are resetting post data then you will need to store that from earlier or dig out of original query ($wp_query->get_queried_object_id()
as far as I remember).-
Oui,commeje l'ai écrit dans un commentaire ci-dessus,j'aibesoin d'extraire unterme d'unetaxonomie attribuée à lapagepourensuite l'utiliser commeparamètre dansmonnouveau WP_Query ().Leproblème de wpget objectterms ()est qu'ilnécessite unetaxonomie commeparamètre.Yes as i wrote in a comment above, i need to extract a term from a taxonomy assigned to the page to then use it as a parameter in my new WP_Query(). The problem of wp get object terms() is that is requires a taxonomy as a parameter.
- 0
- 2011-01-06
- kevin
-
@kevin Je suppose que si c'est votrepropretaxonomiepersonnalisée,vous savez ce qu'ilfaut utiliser commeparamètre?Ou vous voulez quetous lestermes detoutes lestaxonomies soient attribués auposte?Précisez s'il vousplaît.@kevin I assume if it's your own custom taxonomy you know what it is to use as parameter? Or you want all terms in all taxonomies assigned to the post? Please clarify.
- 0
- 2011-01-06
- Rarst
-
Oui c'est lemien,maisje me suis assezmalexpliqué,je voulaistrouver leterme autorisé à une certainetaxonomie queje connaiset quiest également liée à lapage.Désolé dene pas être aussi clair.Yes it's my own, but i explained myself pretty bad, i wanted to find the term allowed to a certain taxonomy that i know which is also related to the page. Sorry for not being so clear.
- 0
- 2011-01-07
- kevin
-
@kevin Jene comprendstoujourspas ... veuillezmettre àjour votre question avec unexemple spécifique de ce que vous avezexactementet de ce que vous voulez récupérer@kevin I still don't get it... please update your question with some specific example of what exactly you have and what you want to retrieve
- 0
- 2011-01-07
- Rarst
-
@Rarst,problème résolu,j'ai éditémonpremiermessage.@Rarst, problem solved, i edited my first post.
- 0
- 2011-01-07
- kevin
-
@kevin si celane vous dérangepas -pourriez-vous s'il vousplaît ajouter la solution que vous aveztrouvée comme réponse afin que d'autrespuissenten bénéficier à l'avenir.@kevin if you don't mind - could you please add solution you ended up with as an answer so others can benefit from it in the future.
- 0
- 2011-01-07
- Rarst
-
@Rarst,c'estfait;Modifier 2.@Rarst, done; Edit2.
- 0
- 2011-01-07
- kevin
-
@kevin comme une ** réponse ** s'il vousplaît :) C'est ainsi quefonctionne le système - questionet détails séparément,réponses concurrentes séparément,même si vous répondez à votrepropre question.De cettefaçon,il y amoins de confusion,si quelqu'unpropose une version améliorée du codeet autres.@kevin as an **answer** please :) That is how system works - question and details separately, competing answers separately, even if you are answering your own question. That way there is less confusion, if someone offers improved version of code and such.
- 0
- 2011-01-07
- Rarst
-
Chose sûre,désolé,je ne savaispas.Edit:je dois attendre 3minutes.Sure thing, sorry about that, didnt know. Edit: gotta wait 3 minutes.
- 0
- 2011-01-07
- kevin
-
@Rarst,toutestfait.@Rarst, all done.
- 0
- 2011-01-07
- kevin
-
- 2012-05-04
Si vous êtes déjà sur lapage des catégories/termes,vouspouvez appeler
get_queried_object();
avant d'exécuter votre requêtepersonnaliséepour obtenir desinformations sur les catégories/termes,y compris le slug.If you're already on the category/term page you can call
get_queried_object();
before running your custom query to get category/term info, including slug.
J'ai quelquespages avec unetaxonomiepersonnaliséepour chaquepageet j'essaie de récupérer cettetaxonomie sur lapage.J'auraisessentiellementbesoin de quelque chose comme
the_current_taxonomy()
commethe_title()
.Cela doitfonctionneren dehors de laboucle carje vais l'utiliser dans uneWP_Query
personnaliséejuste après.Modifier: J'aitrouvé une solutionen utilisant unemanière différente de récupérer lesinformations dontj'avaisbesoin.Mercipour votre aide.