特定のショートコードが存在する場合、ヘッダーにスクリプトを追加できるように、ロードする前にページ/投稿コンテンツをフィルタリングする方法が必要でした。多くの検索の後、私はこれをhttp://wpengineer.comで見つけました
function has_my_shortcode($posts) {
if ( empty($posts) )
return $posts;
$found = false;
foreach ($posts as $post) {
if ( stripos($post->post_content, '[my_shortcode') )
$found = true;
break;
}
if ($found){
$urljs = get_bloginfo( 'template_directory' ).IMP_JS;
wp_register_script('my_script', $urljs.'myscript.js' );
wp_print_scripts('my_script');
}
return $posts;
}
add_action('the_posts', 'has_my_shortcode');
これは絶対に素晴らしいことであり、まさに私が必要としていたことをしました。
今、私はそれをもう少し拡張し、サイドバーにも同じことをする必要があります。特定のウィジェットタイプ、ショートコード、コードスニペット、またはスクリプトをロードする必要がある場合に特定するために機能する他の方法によるものです。
問題は、サイドバーが読み込まれる前にサイドバーのコンテンツにアクセスする方法がわからないことです(問題のテーマにはいくつかのサイドバーがあります)