Если пользовательский тип сообщения

Я ищу способ проверить, является ли сообщение персонализированным типом сообщения. Например, например, в боковой панели я могу поставить такой код:

if ( is_single() ) { // code here } 

Я хочу, чтобы тестирование кода выполнялось только для настраиваемого типа сообщений. Любая помощь будет принята с благодарностью!

Solutions Collecting From Web of "Если пользовательский тип сообщения"

Здесь вы: get_post_type() а затем if ( 'book' == get_post_type() ) ... согласно if ( 'book' == get_post_type() ) ... > Тип сообщения в Codex.

 if ( is_singular( 'book' ) ) { // conditional content/code } 

Вышеприведенное true при просмотре сообщения типа персонализированного типа: book .

 if ( is_singular( array( 'newspaper', 'book' ) ) ) { // conditional content/code } 

Вышеприведенное true при просмотре сообщения пользовательских типов сообщений: newspaper или book .

Эти и более условные теги можно просмотреть здесь .

Для тех, кто ищет это, добавьте это в свои functions.php и вы можете иметь функциональность внутри или снаружи цикла:

 function is_post_type($type){ global $wp_query; if($type == get_post_type($wp_query->post->ID)) return true; return false; } 

поэтому теперь вы можете использовать следующее:

 if (is_single() && is_post_type('post_type')){ //work magic } 

Чтобы проверить, является ли сообщение каким-либо настраиваемым типом сообщения, выберите список всех не встроенных типов сообщений и проверьте, находится ли тип сообщения в этом списке.

Как функция:

 /** * Check if a post is a custom post type. * @param mixed $post Post object or ID * @return boolean */ function is_custom_post_type( $post = NULL ) { $all_custom_post_types = get_post_types( array ( '_builtin' => FALSE ) ); // there are no custom post types if ( empty ( $all_custom_post_types ) ) return FALSE; $custom_types = array_keys( $all_custom_post_types ); $current_post_type = get_post_type( $post ); // could not detect current type if ( ! $current_post_type ) return FALSE; return in_array( $current_post_type, $custom_types ); } 

Применение:

 if ( is_custom_post_type() ) print 'This is a custom post type!'; 

Если по какой-либо причине у вас уже есть доступ к глобальной переменной $ post, вы можете просто использовать

 if ($post->post_type == "your desired post type") { } 

Если вам нужна проверка дикой карты для всех ваших настраиваемых типов сообщений:

 if( ! is_singular( array('page', 'attachment', 'post') ) ){ // echo 'Imma custom post type!'; } 

Таким образом, вам не нужно знать имя своего пользовательского сообщения. Кроме того, код по-прежнему работает, даже если позднее вы измените имя своего пользовательского сообщения.