Вопрос или проблема
Я устаю и запутываюсь, поэтому подумал, что спрошу здесь, прежде чем заканчивать на сегодня.
Я создал пользовательский тип записи 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 после внесения любых изменений в типы постов или таксономии.
Заключение
Следуя данным рекомендациям, вы сможете корректно отображать заголовки архивов для вашего кастомного типа постов и соответствующих категорий. Это позволит вам более эффективно управлять контентом на вашем сайте и улучшить восприятие пользователями.