Ottenere la tassonomia della pagina corrente

5 gen 2011, 21:12:04
Visualizzazioni: 17.3K
Voti: 2

Ho alcune pagine con una tassonomia personalizzata per ciascuna pagina e sto cercando di recuperare questa tassonomia sulla pagina. Avrei fondamentalmente bisogno di qualcosa come the_current_taxonomy() simile a the_title(). Questo deve essere eseguito al di fuori del loop perché lo userò in una WP_Query personalizzata subito dopo.

Modifica: Trovata una soluzione utilizzando un metodo diverso per recuperare le informazioni di cui avevo bisogno. Grazie per l'aiuto ragazzi.

0
Tutte le risposte alla domanda 4
2

Come Rarst, sono confuso su cosa vuoi visualizzare, la tassonomia o i termini di quella tassonomia.

La tassonomia può essere visualizzata ad esempio creando un file template con il nome di quella tassonomia: taxonomy-name.php

Il titolo della tassonomia diventa quindi:

<h1 class="page-title"><<?php $term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) ); echo $term->name; ?></h1>

I termini all'interno di una tassonomia possono essere visualizzati con un tagcloud, vedi http://codex.wordpress.org/Function_Reference/wp_tag_cloud (ma questo è all'interno del loop)

6 gen 2011 08:43:32
Commenti

L'obiettivo è mostrare il termine di una tassonomia assegnata alla pagina corrente. Quindi ho provato a visualizzare i termini all'interno della mia tassonomia con wp_tag_cloud() e ha funzionato, riesco a vedere quello che devo mostrare al centro. Poi ho provato a usare la funzione get_term_by() che mi hai dato ma senza successo.

kevin kevin
6 gen 2011 17:36:18

Ho anche provato a cambiare il secondo parametro in $post->ID come mostrato nell'esempio http://codex.wordpress.org/Function_Reference/get_term_by#Examples nella pagina del codex, ma nemmeno questo ha funzionato.

kevin kevin
6 gen 2011 17:41:37
10

Presumo che taxonomy sia lo stesso e che ciò di cui hai bisogno siano i terms in quella tassonomia, assegnati al post?

La funzione di basso livello per questo è wp_get_object_terms(). Ha bisogno dell'ID dell'oggetto, quindi se stai reimpostando i dati del post dovrai memorizzarli in precedenza o recuperarli dalla query originale ($wp_query->get_queried_object_id() per quanto ricordo).

5 gen 2011 23:01:49
Commenti

Sì, come ho scritto in un commento sopra, ho bisogno di estrarre un termine da una tassonomia assegnata alla pagina per poi usarlo come parametro nel mio nuovo WP_Query(). Il problema di wp get object terms() è che richiede una tassonomia come parametro.

kevin kevin
6 gen 2011 17:39:06

@kevin Suppongo che se è la tua tassonomia personalizzata, tu sappia quale usare come parametro? Oppure vuoi tutti i termini in tutte le tassonomie assegnati al post? Per favore chiarisci.

Rarst Rarst
6 gen 2011 17:49:06

Sì è la mia, ma mi sono spiegato piuttosto male, volevo trovare il termine consentito a una certa tassonomia che conosco e che è anche relazionata alla pagina. Scusa se non sono stato così chiaro.

kevin kevin
7 gen 2011 15:36:37

@kevin Ancora non capisco... per favore aggiorna la tua domanda con un esempio specifico di cosa hai esattamente e cosa vuoi recuperare

Rarst Rarst
7 gen 2011 17:29:34

@Rarst, problema risolto, ho modificato il mio primo post.

kevin kevin
7 gen 2011 19:01:07

@kevin se non ti dispiace - potresti per favore aggiungere la soluzione a cui sei arrivato come risposta così che altri possano beneficiarne in futuro.

Rarst Rarst
7 gen 2011 19:02:47

@Rarst, fatto; Modifica2.

kevin kevin
7 gen 2011 21:17:32

@kevin come risposta per favore :) Così funziona il sistema - domanda e dettagli separatamente, risposte in competizione separatamente, anche se stai rispondendo alla tua stessa domanda. In questo modo c'è meno confusione, se qualcuno propone una versione migliorata del codice e simili.

Rarst Rarst
7 gen 2011 21:22:48

Certo, scusa, non lo sapevo. Modifica: devo aspettare 3 minuti.

kevin kevin
7 gen 2011 21:26:56

@Rarst, tutto fatto.

kevin kevin
7 gen 2011 21:35:06
Mostra i restanti 5 commenti
0

Quindi, avevo bisogno di estrarre il termine di una tassonomia nota assegnata a una pagina (come questa:

function register_prod_categoria() {
  register_taxonomy(
     'prod-categoria',
     array( 'produtos', 'page' ),

(produtos essendo un custom post type, giusto per informazione.)).

Ho provato diverse cose, tra cui questa: get_terms('prod-categoria','') Questo funziona, ma mi restituisce tutto sulla mia tassonomia prod-categoria, che non era ciò che mi serviva.

Poi, come spiegato nel codex, due parametri (interessanti per me) sono disponibili per get_terms(): child_of e parent. Sembrava perfetto, quindi ho provato: get_terms('prod-categoria','child_of=marca'); e anche get_terms('prod-categoria','parent=marca'), marca essendo un termine genitore (dalla tassonomia personalizzata prod-categoria) da cui volevo estrarre i termini figli. Entrambi non mi hanno restituito risultati. Ho provato anche con il nome Marca e lo slug marca, nulla.

La soluzione con cui sono finito è questa: $tt = the_title('','',false);. Sto ottenendo il titolo della pagina per usarlo come parametro dopo: $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) { ... }

A proposito, la funzione posts_search() (l'ho trovata su http://wordpress.stackexchange.com o http://stackoverflow.com se non sbaglio, non ricordo con certezza) permette di fare query su più tassonomie.

Concordo molto che sia lontana dall'essere perfetta, dato che il titolo della pagina deve essere uguale al nome della tassonomia, ma nel mio caso funziona. Grazie mille a Rarst e Piet per aver cercato di aiutare.

7 gen 2011 21:33:45
0

Se sei già nella pagina della categoria/termine, puoi chiamare get_queried_object(); prima di eseguire la tua query personalizzata per ottenere informazioni sulla categoria/termine, incluso lo slug.

5 mag 2012 01:23:31