is_post_type_archive()WP 3.1.0

Проверяет находится ли пользователь на архивной странице записей произвольного типа.

Страницей архива произвольного типа считается страница, на которой выводятся записи нового типа (/?post_type=custom). Если, например, новый тип записей называется 'book', то такая страница будет иметь URL: http://example.com/book/ (может отличаться, зависит от настроек ЧПУ).

Функция возвращает false для страниц типа /category/uncategorized/?post_type=custom. true возвращается только для страниц типа /?post_type=custom. Другими словами функция не проверяет наличие параметра post_type в запросе, она проверяет архив ли это записей произвольного типа. Возможно в качестве альтернативы нужно использовать get_query_var('post_type').

Функция также срабатывает в адмнике на странице с таблицей записей.

Основа для: is_shop()
1 раз — 0.00003 сек (очень быстро) | 50000 раз — 0.03 сек (скорость света)

Хуков нет.

Возвращает

true|false. Если это архивная страница на которой отображаются записи произвольного типа, то функция вернет true, иначе false.

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

if( is_post_type_archive( $post_types ) ){
	// ...
}
$post_types(строка/массив)
Название типа поста или массив из названий типов постов.
По умолчанию: ''

Примеры

0

#1 Страница архива нового типа поста

Этот пример показывает, как определить является ли текущая страница страницей архива произвольно типа поста. Выведем заголовок нового типа поста.

<?php
if ( is_post_type_archive() ) {
	?>
	<h1><?php post_type_archive_title(); ?></h1>
	<?php
}

Заметки

  • Global. WP_Query. $wp_query WordPress Query object.

Список изменений

С версии 3.1.0 Введена.

Код is_post_type_archive() WP 6.4.3

function is_post_type_archive( $post_types = '' ) {
	global $wp_query;

	if ( ! isset( $wp_query ) ) {
		_doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1.0' );
		return false;
	}

	return $wp_query->is_post_type_archive( $post_types );
}