post_type_exists()

Позволяет проверить, зарегистрирован ли определённый тип записи на сайте. Возвращает true, если да, false – если нет.

А ещё, рекомендую моё подробное руководство по произвольным типам постов.

post_type_exists( $post_type )

Параметры

$post_type
(строка) Название типа записи, который хотим проверить.

Примеры

Несколько базовых примеров:

$exists = post_type_exists( 'post' );
// вернёт true, потому что Записи зарегистрированы WordPress по умолчанию
 
$exists = post_type_exists( 'page' );
// вернёт true, потому что Страницы зарегистрированы WordPress по умолчанию
 
$exists = post_type_exists( 'book' );
// вернёт true если тип записи "book" был зарегистрирован, false – если нет
 
$exists = post_type_exists( 'xyz' );
// вернёт true если тип записи "xyz" был зарегистрирован, false – если нет

В реальной жизни функция используется в условиях:

if( post_type_exists( 'xyz' ) ) {
	// тип записи xyz зареган у вас на сайте
}
// кстати полностью аналогична:
// if( (bool) get_post_type_object( 'xyz' ) ) {

Ещё один важный, хотя и может показаться, что вполне логичный момент – функция будет возвращать false, если она выполняется раньше регистрации типа записи. Пример:

add_action( 'init', function() {
 
	register_post_type( 'xyz' );
 
}, 25 );
 
add_action( 'init', function() {
 
	if( post_type_exists( 'xyz' ) ) {
		echo 'Зареган';
	} else {
		echo 'Не зареган'; // Выполнится это!
	}
 
}, 5 ); // этот хук выполняется раньше, потому что его приоритет меньше

Если вам непонятно, как работают хуки в WordPress, то это руководство для вас.

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.