web-dev-qa-db-ja.com

ホームページ専用のWordpress Enqueue、functions.php、wp-framework

交換したいのですが。

    if(is_home())
    {
        wp_enqueue_script( 'homestuff', get_theme_part( THEME_JS . '/home.js' ), array( 'jquery' ), null, true );
        wp_enqueue_script( 'jquerycolor', get_theme_part( THEME_JS . '/jquery.color.js' ), array( 'jquery' ), null, true );
    };

代わりにfunctions.phpファイルに入れて、header.phpに入っています。広大なクライアントのサイトですべてを整理しようとしています。私はWPフレームワークを使用していて、理想的にはメインのparent_themeクラスのenqueue_assets関数内にこれを固定します。これは本当にwpフレームワークの問題ではありませんが、私は知りたいのですが。

関数ファイルからis_home()を動作させるにはどうすればいいですか?グローバルを使用して、私が知る必要がある代替手段はありますか?

4
mjjwatson

まず、サイトのフロントページをターゲットにしたい場合、is_front_page()を使用する必要があります。 is_home()条件は、ブログ投稿インデックスが表示されるときにtrueを返します。これは、サイトのフロントページ

次に、関数を適切なフックにフックする必要があります。この場合、このフックはwp_enqueue_scriptsです。

(また:get_theme_part()とは?WP Frameworkのカスタム関数ですか?)

たとえば、functions.phpでこれを実行できます。

function mytheme_enqueue_front_page_scripts() {
    if( is_front_page() )
    {
        wp_enqueue_script( 'homestuff', get_theme_part( THEME_JS . '/home.js' ), array( 'jquery' ), null, true );
        wp_enqueue_script( 'jquerycolor', get_theme_part( THEME_JS . '/jquery.color.js' ), array( 'jquery' ), null, true );
    }
}
add_action( 'wp_enqueue_scripts', 'mytheme_enqueue_front_page_scripts' );
19
Chip Bennett