Come ottenere il termine tassonomico della pagina corrente e popolare le query nel template

19 giu 2011, 18:15:30
Visualizzazioni: 72.9K
Voti: 20

Sto cercando di capire come ottenere uno specifico termine tassonomico della pagina corrente in modo da poter successivamente popolare query nella pagina per altri tipi di post che condividono lo stesso termine.

In pratica:

  • La Pagina 1 ha il termine tassonomico - politica educativa
  • page.php ha quattro parti:
    1. loop standard che produce l'output della pagina, ma poi ha tre query successive
    2. loop per gli eventi che hanno il termine tassonomico - politica educativa
    3. loop per i report che hanno il termine tassonomico - politica educativa
    4. loop per le persone che hanno il termine tassonomico - politica educativa

Ho creato template specifici per le pagine dove potevo semplicemente inserire il termine hardcodato nei loop aggiuntivi, ma ho bisogno di capire come farlo dinamicamente (quello che doveva essere originariamente quattro o cinque pagine è ora diventato quaranta o cinquanta).

Ho trovato alcune domande simili, ma nessuna che sono riuscito davvero a implementare seguendo le indicazioni.

Ottenere la tassonomia della pagina corrente che era un po' confuso da seguire in termini di cosa venisse effettivamente chiesto.

Ottenere l'ID del termine appartenente alla tassonomia personalizzata su un template single-post-type.php personalizzato

Spero che questo abbia senso e grazie mille.

0
Tutte le risposte alla domanda 3
0
33

Hm, se hai registrato correttamente una tassonomia per il tipo di oggetto "page" e poi hai assegnato un termine di quella tassonomia a una pagina... credo che tu possa accedere agli slug della tassonomia e del termine nel seguente modo:

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

Se fai print_r($wp_query) vedrai tutti i parametri presenti quando viene generata la pagina attualmente visualizzata. Con il codice sopra stai accedendo a quei parametri da $wp_query.

Poi per ottenere l'oggetto termine con tutte le informazioni puoi usare la funzione get_term_by, così:

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

Questo stamperà il nome "leggibile" del termine.

Credo che se usi get_query_var('term') o $term->slug (dopo aver ottenuto l'oggetto termine) puoi usare quello slug in tutte le altre query.

Spero sia utile. Non ho mai usato tassonomie per le pagine. Fammi sapere come va.

28 giu 2011 12:32:50
0

Basta copiare e incollare il codice qui sotto

Questo mostrerà il nome della tassonomia della pagina corrente e la descrizione (opzionale)

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

Potresti aver bisogno di abilitare la ricerca per attivare la paginazione

Quando dichiari una tassonomia personalizzata, dovresti disabilitare l'esclusione dalla ricerca.

exclude_from_search => false

Questo ha risolto il mio problema.

28 dic 2015 21:09:32