質問: 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'); これは絶対に素晴らしいもので、まさに私が必要としていたことでした。今、私はそれをもう少し拡張する必要があり、サイドバーについても同じことをします。特定のウィジェットタイプ、ショートコード、コードスニペット、またはスクリプトをいつロードする必要があるかを識別するために機能するその他のものによって行われます。問題は、サイドバーが読み込まれる前にサイドバーのコンテンツにアクセスする方法がわからないことです(問題のテーマにはいくつかのサイドバーがあります)。
回答: 私が取り組んだ解決策を共有したいと思っただけで、私の実装ではもう少し用途が広くなりました。関数にさまざまなショートコードをチェックさせるのではなく、キューに入れる必要があるスクリプト/スタイル関数を参照する単一のショートコードを探すように修正しました。これは他のクラスのメソッド(これを行わないかもしれないプラグインなど)とスコープ内の関数の両方に対して機能します。以下のコードをfunctions.phpにドロップして、特定のcssおよびjsが必要なページ/投稿に次の構文を追加してください。ページ/投稿構文:[loadcssandjs function = "(クラス - >メソッド/関数名)"]functions.phpコード:function page_specific_cssandjs( $posts ) { if ( empty( $posts ) ) return $posts; foreach ($posts as $post) { $returnvalue = preg_match_all('#\[loadcssandjs function="([a-z\-\>]+)"\]#i', $post->post_content, $types); foreach($types[1] as $type) { $items = explode("->",$type); if (count($items) == 2) { global $$items[0]; if( method_exists( $$items[0], $items[1] )) add_action( 'wp_enqueue_scripts', array(&$$items[0], $items[1]) ); } else if( !empty( $type ) && function_exists( $type )) add_action( 'wp_enqueue_scripts', $type ); } } return $posts; } これにより、ページに必要なだけ追加することもできます。ロードするにはメソッド/関数が必要であることを覚えておいてください。