Functions.phpを通してscripts.phpを取り入れています。これはscripts.phpにありますが、何らかの理由で、ワードプレスはis_home()を認識しません。クエリをリセットしようとしましたが、役に立ちません。私は正しい機能に夢中になっていますか?
if(is_home()){
function my_scripts_method2() {
wp_register_script('cycle', get_template_directory_uri() . '/js/cycle.js', array('jquery'));
wp_enqueue_script('cycle');
}
add_action('wp_enqueue_scripts', 'my_scripts_method2');
function my_scripts_method() {
wp_register_script('homepage', get_template_directory_uri() . '/js/homepage.js', 'cycle');
wp_enqueue_script('homepage');
}
add_action('wp_enqueue_scripts', 'my_scripts_method');
}
起動時に functions.php が含まれているときは、WordPressはクエリの内容を知らず、ページの性質も知りません。 is_home
はfalseを返します。
コードを関数にラップして、グローバルクエリオブジェクトがデータでハイドレートされた後に来るwp
フックによってトリガされるようにします。
add_action( 'wp', 'wpse47305_check_home' );
function wpse47305_check_home() {
if ( is_home() )
add_action( 'wp_enqueue_scripts', 'my_scripts' );
}
function my_scripts() {
...
}
wp_enqueue_scripts
アクションはwp
の後に実行されます。
http://codex.wordpress.org/Plugin_API/Action_Reference#Actions_Run_During_a_Typical_Request