Функция is_post_type_archive()
в WordPress используется для проверки, отображается ли на текущей странице архивный список записей для определенного типа записи (post type). Эта функция полезна для определения, находится ли пользователь на странице архива для пользовательского типа записи, что может быть полезно для настройки отображения контента или изменения макета страницы.
is_post_type_archive( string|array $post_type = '' )
Параметры
$post_type
(необязательно): Строка или массив строк, представляющий типы записей. Если не указано, функция проверяет, является ли текущая страница архивом для любого типа записи.
Возвращаемое значение
Функция возвращает true
, если текущая страница является архивом для указанного типа записи, и false
в противном случае.
Пример 1: Проверка архива для конкретного типа записи
if ( is_post_type_archive( 'portfolio' ) ) {
// Код, который выполняется только на архивной странице типа записи 'portfolio'.
echo '<h1>Архив портфолио</h1>';
}
В этом примере, если текущая страница является архивом для типа записи ‘portfolio’, будет выведен заголовок «Архив портфолио».
Пример 2: Проверка архива для нескольких типов записей
if ( is_post_type_archive( array( 'portfolio', 'testimonial' ) ) ) {
// Код, который выполняется только на архивной странице типов записи 'portfolio' или 'testimonial'.
echo '<h1>Архив портфолио или отзывов</h1>';
}
В этом примере, если текущая страница является архивом для типа записи ‘portfolio’ или ‘testimonial’, будет выведен заголовок «Архив портфолио или отзывов».
Пример 3: Использование функции в условных конструкциях
if ( is_post_type_archive() ) {
echo '<p>Это архивная страница для: '.post_type_archive_title().'</p>';
}
Примечания
- Страницы архива произвольного типа: Страницей архива произвольного типа считается страница, на которой выводятся записи нового типа (например,
/?post_type=custom
). Если новый тип записей называется ‘book’, такая страница будет иметь URL видаhttp://example.com/book/
(это может отличаться в зависимости от настроек ЧПУ). - Проверка параметра
post_type
: Функция возвращаетfalse
для страниц типа/category/uncategorized/?post_type=custom
.true
возвращается только для страниц типа/?post_type=custom
. Другими словами, функция не проверяет наличие параметраpost_type
в запросе, она проверяет, является ли текущая страница архивом записей произвольного типа. В качестве альтернативы можно использовать функциюget_query_var('post_type')
. - Работа в административной панели: Функция также срабатывает в административной панели на странице с таблицей записей.
- Функция
is_post_type_archive()
следует использовать только в цикле или внутри шаблона, где доступен глобальный объект$wp_query
. - Эта функция не учитывает пользовательские таксономии и метки типов записи; она предназначена только для проверки архивов по типу записи.
Заключение
Функция is_post_type_archive()
является мощным инструментом для настройки и отображения информации на страницах архивов в WordPress. Она позволяет разработчикам проверять, какой тип записи отображается на текущей странице и настраивать вывод контента в зависимости от этого.