web-dev-qa-db-ja.com

1ページまたは複数ページのみのエンキュー・スタイル

私は前にそれをしなかったのでそれは問題を引き起こしています。スタイルをエンキューしようとしているか、ページによってはスクリプトである可能性があります。しかし、うまくいきません。これがコードです:

add_action('init', 'my_enqueue_styles');

function my_enqueue_styles(){
    if(is_page('Add Event')){ // also tried slug, page id and wp_reset_query(); bot not worked

    wp_deregister_style( 'jquery-ui-custom-flick' );
    wp_register_style( 'jquery-ui-custom-flick', get_bloginfo('template_directory') .'/styles/jquery.ui/ui.custom.flick.css');
    wp_enqueue_style( 'jquery-ui-custom-flick' );
    }

}

私は条件付き権利をしていません。スクリプトは条件なしで動作します。

ありがとうございます。

解決済み:

問題はinitアクションフックにありました。 initが呼び出されるとき、条件付きis_page()はfalseです。フックwp_print_stylesにスタイルを追加した後、それは完璧に機能しました。

1
Sisir

これはのように動作するはずです。

傍注:あなたがスタイルシートを登録解除して再度登録する理由がわかりません。 get_bloginfo('template_directory')get_template_directory_uri()に置き換えられました。第三:あなたのフォルダは、間にドットが入った名前で本当にありますか?多分これは問題を引き起こします。そして多分あなたのUIスタイルシートはメインjquery UIスタイルシートの依存関係です。

あなたはまたあなたの質問に対する答えを受け入れ始めるべきです。 67%のあなたの「合格率」はあなたのQsに答えることから人々が差し控えるでしょう。

function wpse_16487_enqueue_styles()
{
    if ( is_page('Add Event') ) // also tried slug, page id and wp_reset_query(); bot not worked
    { 
        wp_register_style( 'jquery-ui-custom-flick', get_template_directory_uri().'/styles/jquery-ui/ui-custom-flick.css', 'jquery-ui' );
        wp_enqueue_style( 'jquery-ui-custom-flick' );
    }
}
add_action( 'wp_print_styles', 'wpse_16487_enqueue_styles' );

何かがうまくいかない場合は、wpクエリ:echo '<pre>'; print_r($GLOBALS['wp_query']); echo '</pre>';のデバッグを開始し、それを登録するためのページ名/ slugを確認してください。

3
kaiser