Хотя не все темы используют настраиваемые таксономии как часть самой темы (возможно, для портфолио), абсолютно необходимо, чтобы все темы включали полную поддержку архивов настраиваемых таксономий. Я слишком часто вижу темы, которые не поддерживают должным образом настраиваемые таксономии в своих шаблонах архивов и в конечном итоге вызывают ошибку PHP при просмотре архива таксономии. Это краткое руководство покажет вам действительно простой способ избежать этой проблемы и предоставит полную поддержку пользовательских таксономий в одном файле шаблона.
В этом руководстве предполагается, что все архивы категорий, тегов и таксономий отображаются в одном файле archive.php, а не в отдельных файлах для category.php, tag.php и т.д.
В большинстве случаев разработчики тем размещают в верхней части файла archive.php что-то вроде этого:
Или это:
Или комбинация:
Все эти функции идеально подходят для использования, за исключением того, что они не работают с пользовательскими таксономиями и фактически приводят к возникновению ошибки (если не использовать условное выражение is_category / is_tag).
Если мы посмотрим на исходный код функции tag_description(), мы увидим, что на самом деле это просто ссылка на аналогичную функцию term_description (), но с параметром «post-tag», установленным по умолчанию.
/**
* Retrieve tag description.
*
* @since 2.8
*
* @param int $tag Optional. Tag ID. Will use global tag ID by default.
* @return string Tag description, available.
*/
function tag_description( $tag = 0) {
return term_description( $tag );
}
Функция term_description () действительно хороша, потому что (если мы посмотрим на источник ), мы увидим, что она фактически обнаружит текущий тип таксономии, который отображается, и отобразит описание термина из правильной таксономии, вместо того, чтобы выдавать ошибку как tag_description (). См. Функцию ниже:
Также есть отличная функция для заголовка термина таксономии, которая работает таким же образом: single_term_title ()
Все это означает, что мы можем просто использовать следующий файл в нашем archive.php, и он будет работать для всех таксономий:
Это намного лучше, чем создание нескольких файлов для работы с различными таксономиями (если вы не создаете индивидуальные макеты для каждой), а также намного безопаснее.
Источник записи: https://www.wpexplorer.com