Подключение скриптов/стилей, если в контенте есть шорткод
Подключение и проверка на всех страницах
Этот код показывает, как подключать файл скрипта или стилей по условию - если в отображаемом контенте есть указанный шорткод.
// Подключение скрипта, если на странице есть указанный шорткод. // Используем фильтр как событие. add_filter( 'the_posts', 'has_my_shortcode' ); function has_my_shortcode( $posts ){ if( is_admin() || empty( $posts ) || ! is_main_query() ){ return $posts; } $shortcode_name = 'my_shortcode'; foreach( $posts as $post ){ if( has_shortcode( $post->post_content, $shortcode_name ) ){ add_action( 'wp_enqueue_scripts', 'add_my_scripts' ); break; } } return $posts; } // скрипты подключать, если есть шорткод function add_my_scripts() { $theme_url = get_stylesheet_directory_uri(); wp_enqueue_script( 'my_script', "{$theme_url}/my_script.js" ); }
Подключение и проверка для отдельных страниц - is_singular()
// Подключение скриптов/стилей, если в контенте есть шорткод add_action( 'wp_head', 'my_shortcode_styles' ); function my_shortcode_styles() { global $post; $shortcode_name = 'my_shortcode_name'; if( ! ( $post && is_singular() && has_shortcode( $post->post_content, $shortcode_name ) ) ){ return; } ?> <style> .foo{ color: red; } </style> <?php }
—
Эта заметка встроена в: Фронтэнд. 15+ хуков для functions.php