если существует пользовательский тип записей и есть сценарий загрузки записей
Я зарегистрировал пользовательский тип записи 'featured_post'
. Я ищу способ проверить, есть ли на домашней странице блога какие-либо сообщения 'featured_post'
и есть ли на ней файл javascript.
Сообщения "featured_post" сделают слайдер в верхней части домашней страницы блога. У меня это работало с использованием липких сообщений, но я не могу понять, как условно загрузить скрипт, если есть сообщения CPT 'featured_post'.
Это код, который работал для sticky сообщения:
if ( is_front_page() && is_sticky() ) {
wp_enqueue_script ('flexslider-js');
}
Однако, похоже, это не работает, и я не знаю, почему:
if ( is_front_page() && get_post_type('featured_post') ) {
wp_enqueue_script ('flexslider-js');
}
Заранее благодарю.
2 answers
В данный момент я на работе (извините, босс), поэтому я не могу это проверить, но приведенный ниже фрагмент должен быть правильным способом проверки, существует ли тип записи "featured_post", а затем поставьте в очередь сценарий, если в нем есть какие-либо сообщения.
if ( is_front_page() && post_type_exists('featured_post') ) { // We are at the front page, and the post type 'featured_post' is registered.
$hasposts = get_posts( 'post_type=featured_post' ); // lets check if there is any posts in the 'featured_post' post type.
if( $hasposts ) { // If we found some posts, lets enqueue the script
wp_enqueue_script ('flexslider-js');
}
}
В WordPress есть вспомогательная функция, которая делает именно это: post_type_exists()
Пример:
if ( post_type_exists( 'book' ) ) {
echo 'the Book post type exists';
}