2017-03-10 12 views
2

特定のWordpressページに条件付きでスクリプトとスタイルを読み込むソリューションを探しています。私は解決策を探したが、行き詰まった。私はis_page()のようなphpセレクタをfunctions.phpファイルで使用することができませんでした。Wordpressで条件付きでスタイルとスクリプトを読み込む

function blog_style() { 

    if (is_page('blog')) { 

     wp_enqueue_style('blog'); 

    } 
} 

add_action('wp_print_styles', 'blog_style'); 

私はページが識別された前のfunctions.phpファイルがロードされているので、これは感じている。ここでは私の過去の試みの一例です。アドバイスが役に立ちます。私はPHPとWordpressコーデックスの基本的な理解を持っています。ありがとう!

答えて

0

ここで間違ったフックを使用していると思います。私はこの問題であなたの混乱を理解し、ワードプレスは時々物事を処理するための奇妙な方法を持っていることを告白しなければならない

add_action('wp_enqueue_scripts', 'blog_style'); 
2

を試してみてください。

まずは、ご希望の場合は、

add_action('wp_enqueue_scripts', 'themeslug_styles'); 

function themeslug_styles() { 
    wp_enqueue_style(...); 
} 

それともshorthand- /匿名関数の形式で:あなたはwp_enqueue_scriptsフックでスクリプトやスタイルをエンキューする必要があり

add_action('wp_enqueue_scripts', function() { 
    wp_enqueue_style(...); 
}); 

あなたis_page('blog')の基本的な考え方をIF-にステートメントは正しいです。また、detailed info about conditional tagsもチェックしてください。あなたのウェブサイトのブログページをターゲットにするより良い方法があるかもしれません(リンクされたリソースの「ブログページ」を参照)。

関数内でifステートメントを使用する必要があります。これは、機能が実行されているwp_enqueue_scriptsの点にあるため、WordPressには実際のコンテンツの準備に関する情報があるからです。

add_action('wp_enqueue_scripts', function() { 
    if (is_home()) { 
     wp_enqueue_style('themeslug-stylename', URL-to-your-style); 
     wp_enqueue_script('themeslug-scriptname', URL-to-your-script); 
    } 
}); 

追加:あなたは正しいです、functions.phpファイルは、主にすべてを設定し、WordPressのフックにアクションとしての機能を接続するために使用されます。したがって、WordPressの実行フローのかなり早い段階でコードが実行され、できるだけ多くのフックにアクセスできるようになります。欠点は、あなたが経験したように、この時点で多くのものに直接アクセスすることができないことです。

+0

この例では、ブログページに適用されます。これはis_home()ですが、私の究極の目標は、これを私が必要とするページで使用することです。これはどこに行こうか?私はこれを私のpage.phpファイルに入力しようとしましたが、何も起こりませんでした。 { wp_enqueue_style( 'random'、 '/random.css'); } {?php add_action( 'wp_enqueue_scripts'、function(){ if(is_page( 'Home')) }); ?> ' –

+0

このコードをfunctions.phpファイルの中に入れてください。あなたの例でスタイルシートの読み込みが失敗するのは、スタイルシートをエンキューするために使用しているパスです。スタイルシートがあなたのテーマディレクトリの中にある場合、 '/ random.css'の前に' get_template_directory_uri() 'をつける必要があります。 'get_template_directory_uri()になります。 '/ random.css' '。あなたが指定した場所にスタイルシートが見つからない場合、WordPressは残念なことにあなたにエラーを与えません。論理は、とにかく、正しいです。 –

+1

それは欠けていた部分だった。ありがとうございました! –

-1

thisの機能を確認できます。私はこの機能を使ってさまざまなポストタイプやページにスクリプトを動的に読み込んでいました。私はscreen_idを使って現在のページを指定しました。

+0

これは管理ページ用ではありませんか? –

関連する問題