Obține taxonomia paginii curente
Am câteva pagini cu o taxonomie personalizată pentru fiecare pagină și încerc să obțin această taxonomie pe pagină. Am nevoie de ceva similar cu the_current_taxonomy()
, similar cu the_title()
. Acest lucru trebuie să ruleze în afara loop-ului pentru că îl voi folosi într-o interogare personalizată WP_Query
imediat după.
Edit: Am găsit o soluție folosind o altă metodă pentru a obține informațiile de care aveam nevoie. Vă mulțumesc pentru ajutor.

La fel ca Rarst, sunt confuz în legătură cu ce dorești să afișezi: taxonomia sau termenii acelei taxonomii.
Taxonomia poate fi afișată, de exemplu, dacă creezi un fișier de șablon cu numele acelei taxonomii: taxonomy-name.php
Titlul taxonomiei devine atunci:
<h1 class="page-title"><<?php $term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) ); echo $term->name; ?></h1>
Termenii dintr-o taxonomie pot fi afișați cu un tagcloud, vezi http://codex.wordpress.org/Function_Reference/wp_tag_cloud (dar asta se întâmplă în buclă)

Scopul este de a afișa termenul dintr-o taxonomie alocat paginii curente. Așa că am încercat să afișez termenii din taxonomia mea cu wp_tag_cloud() și a funcționat, pot vedea cel pe care trebuie să îl afișez în mijloc. Apoi am încercat să folosesc funcția get_term_by() pe care mi-ai dat-o, dar fără succes.

Am încercat, de asemenea, să schimb al doilea parametru în $post->ID, așa cum este arătat în exemplul de pe http://codex.wordpress.org/Function_Reference/get_term_by#Examples pagina codex, dar tot fără succes.

Presupun că taxonomy
este același și ceea ce ai nevoie sunt terms
din acea taxonomie, atribuite postării?
Funcția de nivel scăzut pentru aceasta este wp_get_object_terms()
. Ea necesită ID-ul obiectului, așa că dacă resetezi datele postării, va trebui să le stochezi dinainte sau să le extragi din interogarea originală (din câte îmi amintesc, $wp_query->get_queried_object_id()
).

Da, așa cum am scris într-un comentariu mai sus, trebuie să extrag un termen dintr-o taxonomie atribuită paginii pentru a-l folosi apoi ca parametru în noul meu WP_Query(). Problema cu wp get object terms() este că necesită o taxonomie ca parametru.

@kevin Presupun că dacă este propria ta taxonomie personalizată, știi care este pentru a o folosi ca parametru? Sau vrei toți termenii din toate taxonomiile atribuite postului? Te rog să clarifici.

Da, este a mea, dar m-am exprimat destul de neclar, voiam să găsesc termenul permis unei anumite taxonomii pe care o cunosc și care este, de asemenea, legată de pagină. Îmi cer scuze pentru lipsa de claritate.

@kevin Încă nu înțeleg... te rog actualizează întrebarea ta cu un exemplu specific despre ce anume ai și ce vrei să obții

@kevin dacă nu te deranjează - te rog adaugă soluția la care ai ajuns ca răspuns, astfel încât și alții să poată beneficia de ea în viitor.

@kevin ca un răspuns, te rog :) Așa funcționează sistemul - întrebare și detalii separat, răspunsuri concurente separat, chiar dacă răspunzi la propria întrebare. Astfel este mai puțină confuzie, dacă cineva oferă o versiune îmbunătățită a codului și altele asemenea.

Așadar, aveam nevoie să extrag termenul dintr-o taxonomie cunoscută asociată unei pagini (ca în exemplul următor):
function register_prod_categoria() {
register_taxonomy(
'prod-categoria',
array( 'produtos', 'page' ),
(unde produtos este un tip de postare personalizată, doar pentru informație).
Am încercat diverse metode, printre care și aceasta: get_terms('prod-categoria','')
. Aceasta funcționează, dar returnează toate informațiile despre taxonomia mea prod-categoria, ceea ce nu era exact ce aveam nevoie.
Apoi, conform codex-ului, există doi parametri (interesanți pentru mine) disponibili pentru get_terms()
: child_of și parent. Părea perfect, așa că am încercat: get_terms('prod-categoria','child_of=marca');
și de asemenea get_terms('prod-categoria','parent=marca')
, unde marca este un termen părinte (din taxonomia personalizată prod-categoria) din care doream să extrag termenii copil. Ambele metode nu au returnat niciun rezultat. Am încercat și cu numele Marca și slug-ul marca, fără succes.
Soluția la care am ajuns este următoarea: $tt = the_title('','',false);
. Obțin titlul paginii pentru a-l folosi ca parametru mai departe: $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) { ... }
Apropo, funcția posts_search() (pe care am găsit-o pe http://wordpress.stackexchange.com sau http://stackoverflow.com, dacă îmi amintesc corect, nu sunt sigur exact) permite efectuarea de interogări pe mai multe taxonomii.
Recunosc că această soluție este departe de a fi perfectă, deoarece titlul paginii trebuie să coincidă cu numele taxonomiei, dar în cazul meu funcționează. Mulțumesc mult lui Rarst și Piet pentru încercarea lor de a ajuta.
