is_post_type_archive

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

Страницей архива произвольного типа считается страница, на которой выводятся записи нового типа (/?post_type=custom). Если, например, новый тип записей называется ‘book’, то такая страница будет иметь УРЛ: http://site.ru/book/ (это обычно, зависит от настроек ЧПУ).

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

✈ 1 раз = 0.00003с = очень быстро | 50000 раз = 0.03с = скорость света

Хуков нет.

Возвращает

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

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

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

Примеры

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

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

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

Код из


wp-includes/query.php

WP 4.7.2

<?php
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 );
}

Комментарии:


Оставить комментарий

Your email address will not be published. Required fields are marked *