Cum să obții termenul taxonomiei paginii curente și să populezi interogări în șablon

19 iun. 2011, 18:15:30
Vizualizări: 72.9K
Voturi: 20

M-am tot chinuit să îmi dau seama cum să obțin un termen specific al taxonomiei din pagina curentă, astfel încât să pot popula ulterior interogări pe pagină pentru alte tipuri de postări care împărtășesc același termen.

Practic:

  • Pagina 1 are termenul taxonomiei - politică educațională
  • page.php are patru părți:
    1. loop standard care generează pagina, dar apoi are trei interogări subsecvente
    2. loop pentru evenimente care au termenul taxonomiei - politică educațională
    3. loop pentru rapoarte care au termenul taxonomiei - politică educațională
    4. loop pentru persoane care au termenul taxonomiei - politică educațională

Am creat șabloane specifice pentru pagini unde puteam să hardcodez termenul în loopurile suplimentare, dar trebuie să găsesc o modalitate de a face acest lucru dinamic (ceea ce trebuia să fie inițial patru sau cinci pagini este acum patruzeci sau cincizeci).

Am găsit câteva întrebări similare, dar niciunul pe care să-l pot implementa cu adevărat.

Obține taxonomia paginii curente care a fost puțin confuză de urmărit în ceea ce privește ce se cerea de fapt.

Obține ID-ul termenului aparținând taxonomiei personalizate pe o pagină șablon single-post-type.php personalizată

Sper că are sens și mulțumesc mult.

0
Toate răspunsurile la întrebare 3
0
33

Hm, dacă ai înregistrat corect o taxonomie pentru tipul de obiect "page" și apoi ai atribuit un termen din acea taxonomie unei pagini... Cred că poți accesa slug-urile taxonomiei și termenului în felul următor:

get_query_var( 'taxonomy' )
get_query_var( 'term' )

Dacă folosești print_r($wp_query) vei vedea toți parametrii care sunt prezenți atunci când se generează pagina curentă afișată. Cu codul de mai sus, accesezi acei parametri din $wp_query.

Apoi, pentru a obține obiectul termenului cu toate informațiile, poți folosi funcția get_term_by, astfel:

$term = get_term_by( 'slug', get_query_var('term'), get_query_var('taxonomy') );
echo $term->name;

Aceasta va afișa numele "prietenos" al termenului.

Cred că dacă folosești get_query_var('term') sau $term->slug (după obținerea obiectului termen) poți utiliza acel slug în orice alte interogări.

Sper că te ajută. Nu am folosit niciodată taxonomii pentru pagini. Spune-mi cum te-ai descurcat.

28 iun. 2011 12:32:50
0

Doar copiați și lipiți codul de mai jos

Acest cod va afișa numele taxonomiei paginii curente și descrierea (opțional)

<?php 
   $tax = $wp_query->get_queried_object();
   echo ''. $tax->name . '';
   echo "<br>";
   echo ''. $tax->description .''; 
?>
31 aug. 2017 18:48:09
0
-2

Poate că trebuie să activezi căutarea pentru a activa paginarea.

Când declari o taxonomie personalizată, ar trebui să dezactivezi excluderea din căutare.

exclude_from_search => false

Această soluție mi-a rezolvat problema.

28 dec. 2015 21:09:32