Этот код показывает, как подключать файл скрипта или стилей по условию - если в отображаемом контенте есть указанный шорткод.
## Подключение скрипта, если на странице есть указанный шорткод.
## используем фильтр как событие.
add_filter( 'the_posts', 'has_my_shortcode' );
function has_my_shortcode( $posts ){
if( is_admin() ) return $posts; // выходим, если админка
if( empty($posts) ) return $posts; // выходим, если нет данных
if( ! is_main_query() ) return $posts; // проверяем только для основного запроса
//if( ! is_singular() ) 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' );
}