Come posso rimuovere i link dalla funzione "get term list"?

22 mar 2011, 20:50:26
Visualizzazioni: 17K
Voti: 2
<?php echo get_the_term_list( $post->ID, 'people', 'Persone: ', ' ', '' ); ?> 

restituisce qualcosa come questo:

Persone: <a href="person1">Persona1</a>, <a href="person2">Persona2</a>, ...

Come posso farlo restituire la stessa cosa ma senza link in questo modo:

Persone: Persona1, Persona2
0
Tutte le risposte alla domanda 4
0
13

In alternativa puoi anche utilizzare

<?php 
echo strip_tags (
    get_the_term_list( get_the_ID(), 'tax_name', "Testo prima del valore ",", " )
);
?>
17 nov 2012 13:03:55
2
12

Potrebbe essere più semplice scrivere la lista manualmente, qualcosa come:

<?php
$terms = wp_get_post_tags( $post->ID );
//Per tassonomia personalizzata usa questa riga sotto
//$terms = wp_get_object_terms( $post->ID, 'people' );

foreach( $terms as $term )
    $term_names[] = $term->name;

echo implode( ', ', $term_names );
22 mar 2011 21:39:50
Commenti

Come funzionerebbe per una tassonomia personalizzata? Ho provato: $terms = get_the_term_list( $post->ID,'people'); ma mi ha dato un errore

Carson Carson
19 apr 2011 08:22:13

@Carson stai usando la funzione sbagliata, ti serve wp_get_object_terms() quindi sarebbe: $terms = wp_get_object_terms( $post->ID, 'people' );

Joe Hoyle Joe Hoyle
31 mag 2011 02:23:44
1

Ho trovato un altro metodo che risponde più direttamente alla mia domanda:

<?php $terms_as_text = get_the_term_list( $post->ID,'people', 'Persone: ', ', ');
if (!empty($terms_as_text)) echo '<p>', strip_tags($terms_as_text) ,'</p>'; ?>

Crediti: CSS Tricks

19 apr 2011 04:00:17
Commenti

non farlo. usa la soluzione di Joe, ma con wp_get_post_terms($post->ID, 'people') invece di wp_get_post_tags()

onetrickpony onetrickpony
19 apr 2011 09:04:45
1

L'uso di strip_tags() può diventare complicato se vuoi mostrare i tuoi termini come una lista HTML. Ecco qualcosa per te. Impostando $raw a true (o qualsiasi valore non vuoto) creerà semplicemente una lista in linea con il separatore di tua scelta, altrimenti genererà una lista HTML senza link. Se vuoi che la tua lista abbia un titolo stilizzato, imposta $titletag a, ad esempio, H1 o H2. Se non vuoi un titolo, lascia semplicemente $title vuoto.

function show_tax($taxname, $title, $title_tag, $raw, $separator){
    $terms = get_the_terms($post->ID, $taxname);
    $out = '';
    if (!empty($title)){
        if(empty($title_tag)){
            $title_tag = 'span';
           }
            $out .= '<'.$title_tag.'>'.$title.'</'.$title_tag.'>';
        }
    if (!empty($raw)){
                $out = implode($separator, $terms);
        }
        else{

            $out .= '<ul>';
                foreach ( $terms as $term ){
                            $out .='<li>'.$term->name.'</li> ';
                            }
                $out .= '</ul>';

        }       
            return $out;
}

Esempio di utilizzo:

echo show_tax('people', 'PERSONE', 'h3', '', ''); // Una lista HTML con PERSONE come titolo
echo show_tax('people', 'PERSONE:', '', true, ','); // Una lista in linea con PERSONE: come testo precedente
10 lug 2014 13:42:17
Commenti

codice aggiornato. implode non funzionava perché è un array di oggetti post

MikeiLL MikeiLL
21 apr 2017 18:25:10