Come ottenere get_the_term_list senza link nei tag del titolo del template archivio?

1 feb 2011, 16:28:42
Visualizzazioni: 38.8K
Voti: 18

Quale funzione mostrerà le tassonomie personalizzate associate a un post come testo semplice?

Attualmente sto utilizzando get_the_term_list che funziona benissimo per una pagina singola ma non altrettanto bene quando si utilizza una tassonomia nel tag del titolo permalink nel file archive-postype.php.

0
Tutte le risposte alla domanda 5
2
25

Tuttavia @anu ha ragione, ho scoperto che puoi chiamare la funzione php strip_tags per rimuovere i tag dal valore restituito.

$terms = get_the_term_list( $post->ID, 'tags' );
$terms = strip_tags( $terms );
1 feb 2011 21:18:40
Commenti

Sembra così semplice e fa il suo lavoro. Ci sono degli svantaggi nell'usare questo metodo?

Muhammad Asad Muhammad Asad
3 gen 2017 15:11:45

@Mohsin Uno svantaggio è che rimuove tutti i tag, non solo il tag <a>. Tuttavia, puoi evitare che i tag desiderati vengano rimossi, in questo modo: $terms = strip_tags( $terms, '<li>' );

David David
6 dic 2017 10:20:52
1
18

wp_get_object_terms() restituisce i termini associati a un oggetto (ad esempio un post, una pagina o un custom post) come testo (normalmente in un array).

Dalla pagina del Codex per wp_get_object_terms()

$productcategories = wp_get_object_terms($post->ID, 'productcategories');

1 feb 2011 17:37:46
Commenti

Tieni presente che i risultati della query non vengono memorizzati nella cache come get_the_terms(). Consulta la pagina del codex per maggiori informazioni.

Dylan Dylan
8 set 2016 07:25:22
1

Penso che il modo migliore sia implementare un filtro per l'elenco dei termini, che estragga tramite regex solo il testo dall'elenco.

Vedi get_the_terms_list() e l'Hook nelle Risorse per Sviluppatori.

 $term_links = apply_filters( "term_links-{$taxonomy}", string[] $links ) 

Puoi implementare il tuo filtro personalizzato.

1 feb 2011 16:50:11
Commenti

Questo è esattamente l'hook che ho trovato leggendo il codice sorgente.

wittich wittich
2 feb 2023 09:57:29
0
$terms = wp_list_pluck( get_the_terms( get_the_ID(), 'your_taxonomy' ), 'name');

Qui $terms è un array, quindi puoi usare un ciclo foreach.

foreach( $terms as $term ) {
  echo $term;
}
5 lug 2019 22:37:58
0

Ho bisogno della stessa cosa e ho provato la soluzione di Zack che funziona benissimo. Ad esempio, se hai bisogno solo del termine da inserire nell'id o nella classe css. Solo un'appunto sulla soluzione, la funzione è chiamata male, correttamente è "get_the_term_list".

Mostro il mio esempio:

$terms = get_the_term_list( $post->ID, 'your_taxonomy_name' );
$terms = strip_tags( $terms );
17 gen 2013 13:10:13