Позволяет проверить, зарегистрирован ли определённый тип записи на сайте. Возвращает 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, то это руководство для вас.
Источник: Блог Миши Рудрастых