Как я могу удалить ссылки из функции "получить список терминов"?


<?php echo get_the_term_list( $post->ID, 'people', 'People: ', ' ', '' ); ?> 

Возвращает что-то вроде этого:

People: <a href="person1">Person1</a>, <a href="person2">Person2</a>, ...

Как я могу заставить его возвращать то же самое без ссылок, подобных этой:

People: Person1, Person2
Author: Carson, 2011-03-22

4 answers

Возможно, будет проще просто написать список вручную, что-то вроде:

<?php
$terms = wp_get_post_tags( $post->ID );
//For custom taxonomy use this line below
//$terms = wp_get_object_terms( $post->ID, 'people' );

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

echo implode( ', ', $term_names );
 11
Author: Joe Hoyle, 2014-05-14 12:20:51

В качестве альтернативы вы также можете использовать

<?php 
echo strip_tags (
    get_the_term_list( get_the_ID(), 'tax_name', "Text Before Value ",", " )
);
?>
 12
Author: Puneet, 2012-11-17 11:25:08

Я нашел другой метод, который более прямо отвечает на мой вопрос:

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

Заслуга: Приемы CSS

 1
Author: Carson, 2011-04-19 04:55:47

Использование strip_tags() Может усложниться, если вы хотите отобразить свои термины в виде списка HTML. Вот, здесь есть кое-что для тебя. значение $raw равно true (или что-либо, что не пусто) просто создаст встроенный список с разделителем $ по вашему выбору, если нет, он создаст список HTML без ссылок. Если вы хотите, чтобы ваш список имел стилизованный заголовок, установите для тега $ titletag значение, скажем, H1 или H2. Если вам не нужен заголовок, просто оставьте $title пустым.

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;
}

Пример использования:

echo show_tax('people', 'PEOPLE', 'h3', '', ''); // An html list with PEOPLE as title
echo show_tax('people', 'PEOPLE:', '', true, ','); // An inline list with PEOPLE: as before text
 1
Author: Danny Hefer, 2017-04-21 03:55:12