Как получить заголовок архива категории типа записи

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

Я устаю и запутываюсь, поэтому подумал, что спрошу здесь, прежде чем заканчивать на сегодня.

Я создал пользовательский тип записи membercontent

В membercontent я создал таксономию membercontent_category

В archive.php я переписывал заголовок следующим образом:

                    ...

                    elseif ( is_post_type_archive( 'membercontent' ) ) :

                        _e( 'Содержимое участника', 'radiate' );                      

                    elseif ( get_post_type() == 'membercontent' ) :

                        post_type_archive_title();

                    else :

                        _e( 'Архивы', 'radiate' );

                    endif;

Однако это не отображает страницы архивов категорий…

Существует ли функция get_category_title()?

$category_detail=get_the_category(get_the_ID());//$post->ID
                                foreach($category_detail as $cd)
                                {
                                    $name_category=$cd->cat_name;
                                    $id_category=$cd->term_id;
                                    echo $name_category;

                                }

этот код получает название категории и id, вам просто нужно указать id поста

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

Чтобы получить заголовок архива категории для вашего кастомного типа постов membercontent и таксономии membercontent_category, необходимо учитывать несколько аспектов. Давайте разберем, как это сделать, исходя из вашего описания.

1. Проверка условий

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

2. Получение заголовка для архивов категорий

При отображении архива по таксономии, вам нужно использовать функцию single_term_title(). Эта функция возвращает название текущего таксономического термина. Вот пример, как это можно реализовать:

if ( is_post_type_archive( 'membercontent' ) ) {
    _e( 'Member Content', 'radiate' );
} elseif ( is_tax( 'membercontent_category' ) ) {
    single_term_title();
} elseif ( get_post_type() == 'membercontent' ) {
    post_type_archive_title();
} else {
    _e( 'Archives', 'radiate' );
}

3. Пояснения

  • is_tax(‘membercontent_category’): Эта функция проверяет, находится ли пользователь на странице архива для термина в таксономии membercontent_category. Она позволяет вам отобразить заголовок, соответствующий выбранной категории.
  • single_term_title(): Эта функция отображает название текущего термина таксономии. Она автоматически учитывает текущую категорию, что позволяет избежать дополнительных вызовов и упрощает код.

4. Полный код

Вот как может выглядеть ваш полный код для заголовков архивов:

if ( is_post_type_archive( 'membercontent' ) ) {
    _e( 'Member Content', 'radiate' );
} elseif ( is_tax( 'membercontent_category' ) ) {
    single_term_title();
} elseif ( get_post_type() == 'membercontent' ) {
    post_type_archive_title();
} else {
    _e( 'Archives', 'radiate' );
}

5. Убедитесь в правильности вывода

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

Заключение

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

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

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