Добавить название категории к заголовку поста (h1)

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

Как добавить название категории в заголовок поста (H1)? “НазваниеПоста + НазваниеКатегории”?

Мой код заголовка h1:

<?php the_title( '<h1 class="entry-title">', '</h1>' ); ?>

Я бы изменил код и сделал что-то вроде этого.

<h1><?php echo get_the_title(); ?> - <?php the_category(', '); ?></h1>

get_the_title(); Получает заголовок поста.

the_category(', '); Отображает ссылки на категории, каждая категория разделена запятой (если их несколько).

Документация доступна здесь: https://codex.wordpress.org/Function_Reference/the_category

Надеюсь, это поможет вам.

Есть два решения, которые вы можете использовать.

Изменить это в теме

Если вы можете просто изменить строку, печатающую заголовок, то сделайте это. Вы можете заменить ее на:

<h1><?php the_title(); ?> - <?php the_category(); ?></h1>

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

<h1><?php the_title(); ?> - <?php
    $categories = get_the_category();
    if ( ! empty($categories) ) {
        foreach ( $categories as $term ) {
            echo esc_html( $term->name ) . ' ';
        }
    }
?></h1>

Если вы не можете изменить тему

Или не хотите, потому что есть много мест, которые нужно будет изменить, тогда вы можете использовать фильтр the_title:

function add_categories_to_the_title( $title, $id ) {
    if ( is_singular( 'post' ) && 'post' == get_post_type( $id ) ) {  // это будет работать только для постов на отдельной странице, но вы можете изменить это условие
        $categories = get_the_category();
        $cats_string = '';
        if ( ! empty($categories) ) {
            foreach ( $categories as $term ) {
                $cats_string .= $term->name . ' ';
            }
        }
        if ( $cats_string ) {
            $title .= ' - ' . $cats_string;
        }
    }

    return $title;
}
add_filter( 'the_title', 'add_categories_to_the_title', 10, 2 );

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

Чтобы добавить название категории к заголовку поста (H1) в WordPress, можно воспользоваться несколькими подходами. Рассмотрим теоретическую часть, представим пример и применим полученные знания на практике.

Теория

Когда возникает необходимость отображать название категории вместе с заголовком поста, необходимо учитывать структуру темы и предпочтения в отображении. Важную роль играют функции WordPress, такие как the_title(), которая выводит заголовок поста, и the_category(), которая выводит список категорий, к которым он относится.

Есть два основных подхода для реализации данной задачи: изменение кода темы и использование фильтра WordPress the_title. Каждое из решений имеет свои преимущества и недостатки, которые мы рассмотрим ниже.

Пример

Изменение темы

Если у вас есть возможность изменить тему, рекомендуем скорректировать ту часть кода, которая отвечает за отображение заголовка. Например:

<h1><?php the_title(); ?> - <?php the_category(', '); ?></h1>

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

<h1><?php the_title(); ?> - <?php
    $categories = get_the_category();
    if ( ! empty($categories) ) {
        foreach ( $categories as $term ) {
            echo esc_html( $term->name ) . ' ';
        }
    }
?></h1>

Использование фильтра

Если изменения в теме нежелательны или их необходимо внедрять в разные места, проще использовать фильтр the_title:

function add_categories_to_the_title( $title, $id ) {
    if ( is_singular( 'post' ) && 'post' == get_post_type( $id ) ) {
        $categories = get_the_category();
        $cats_string = '';
        if ( ! empty($categories) ) {
            foreach ( $categories as $term ) {
                $cats_string .= $term->name . ' ';
            }
        }
        if ( $cats_string ) {
            $title .= ' - ' . $cats_string;
        }
    }

    return $title;
}
add_filter( 'the_title', 'add_categories_to_the_title', 10, 2 );

Применение

Изменение темы удобно и быстро, если вы разрабатываете новый проект или имеете полный доступ к коду темы. Однако использование фильтра более универсально, так как позволяет модифицировать вывод заголовков во всех частях сайта без изменения исходного кода темы.

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

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

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