Категория вызова

Вопрос или проблема

Я искал, есть ли простая функция, которая возвращает только имя категории в публикации. Я хочу вывести это как подзаголовок для списка публикаций, но не хочу, чтобы это было ссылкой, а функция the_category(); возвращает только ссылку.

Я также не хочу, чтобы это было в виде списка. Есть ли мысли о том, как я могу просто получить “slug” категории?

Что вам нужно, так это get_the_category(). Получите список категорий, а затем выполните цикл и выводите только их имена:

$categories = get_the_category();
if ( ! empty( $categories ) ) {
    foreach( $categories as $category ){
        echo esc_html( $category->name );   
    }
}

Эта функция возвращает массив объектов WP_Term. Вы можете проверить предоставленную ссылку для получения списка доступных методов.

Вы также можете использовать get_the_terms с любой таксономией и выводить без ссылки таким образом:

$terms = get_the_terms( get_the_ID(), 'category' );
                     
if ( $terms && ! is_wp_error( $terms ) ) : 
    
$cats = array();
    
foreach ( $terms as $term ) {
    $cats[] = $term->name;
}
                            
$cats = join( ', ', $cats );

echo $cats;

endif;

}

Ответ или решение

Чтобы получить название категории без ссылки в WordPress, вы можете использовать функции get_the_category() или get_the_terms(). Оба метода позволят вам исключить ссылки и вывести только имена категорий.

  1. Используя get_the_category():
$categories = get_the_category();
if ( ! empty( $categories ) ) {
    foreach( $categories as $category ){
        echo esc_html( $category->name );   
    }
}

Этот код извлекает категории, связанные с текущим постом, и выводит каждое название категории. Использование esc_html() обеспечивает безопасный вывод, предотвращая возможные XSS-атаки.

  1. Используя get_the_terms():

Если вы хотите больше контроля (например, если работаете с другими таксономиями), вы можете использовать get_the_terms() следующим образом:

$terms = get_the_terms( get_the_ID(), 'category' );

if ( $terms && ! is_wp_error( $terms ) ) : 
    $cats = array();

    foreach ( $terms as $term ) {
        $cats[] = $term->name;
    }

    $cats = join( ', ', $cats );

    echo $cats;

endif;

В этом коде мы получаем термины для заданного поста и таксономии "category". Проверяем, чтобы массив не был пустым и не был ошибкой. Затем извлекаем названия категорий и объединяем их в строку, разделенную запятыми.

Таким образом, оба подхода позволяют вам получить названия категорий без гиперссылок, и вы можете использовать их в любом месте вашего шаблона WordPress.

Оцените материал
Добавить комментарий

Капча загружается...