子テーマでは、スクリプトとスタイルファイルをロードするfunctions.phpファイルを作成しました。コードは以下のとおりです。 admin以外のすべてのページにライブラリとスクリプトをロードするセクション、つまり最初の2つの機能は、期待どおりに機能します。ただし、特定のページのスクリプトを読み込むように設計されている3番目の関数は読み込まれません。私の問題はページ条件の指定に関係しているようです。登録とエンキューのコードの残りの部分は、管理ページ以外のページのスクリプトをロードする一般的な関数に配置されている場合に機能します。私はこれまで私が使ったアプローチがうまくいかない理由を示す例を見つけることができないことを調査しました。ページIDとページ名を入れ替えましたが、役に立ちません。
問題の原因についてのどんな提案も大いに感謝されるでしょう。
ありがとう。
<?php
function scripts () {
if ( !is_admin() ) {
wp_enqueue_script('jquery');
wp_register_script('jqueryUI', "path", array('jquery')); //register custom UI library
wp_enqueue_script('jqueryUI');
wp_register_script('popUp1', ("path"), array('jquery', 'jqueryUI'));
wp_enqueue_script('popUp1');
wp_register_script('popUpText', 'path', array('jquery', 'jqueryUI'));
wp_enqueue_script('popUpText');
}
}
add_action('init', 'scripts');
//INSERT CSS files into the header
function styles () {
if ( !is_admin() ) {
wp_register_style('jqueryUIcss', "path");
wp_enqueue_style('jqueryUIcss');
wp_register_style('valuecss', "path");
wp_enqueue_style('valuecss');
}
}
add_action('init', 'styles');
//Add scripts for pop ups on "how to estimate value" page
function pagePopUps1 () {
if ( is_page(16)) {
wp_register_script('popUpVideo1', "path", array('jquery', 'jqueryUI'));
wp_enqueue_script('popUpVideo1');
}
}
add_action('init', 'pagePopUps1');
//End of file
?>
簡潔にするために、私はsrcを削除しましたが、これらは検証されており、問題の原因ではありません。
スクリプト登録をinitアクションに移動し、エンキューをwp_print_scripts
にフックされたコールバックに移動することをお勧めします。
例えば。
add_action( 'init', 'register_those_scriptsNstyles' );
function register_those_scriptsNstyles() {
wp_register_script( .. your script params .. );
wp_register_style( .. your style params .. );
..etc..
}
add_action( 'wp_print_scripts', 'enqueue_those_scriptsNstyles' );
function enqueue_those_scriptsNstyles() {
if( !is_page( 'some-page' ) ) // If it's not the given page, stop here
return;
wp_enqueue_script( .. your script params .. );
wp_enqueue_style( .. your style params .. );
..etc..
}
注:フック名にもかかわらず、wp_print_scripts
もスタイルをエンキューするのに適しているはずです。重要な要素は、使用するフックが条件付きテンプレートタグが設定されるのに十分遅く発生するようにすることです。 is_page
、is_category
など.
もしそうでなければ、代わりにwp_head
を試してください。 add_action( 'wp_head', 'your-callback' )
EDIT:管理者側と同じように、スタイルの場合はパブリック側がスタイルに対するアクションを持ちます。これはwp_print_styles
..ですそこにスタイル)。
それが役立つことを願っています..
そのような場合に確認する最初の事柄:
関数にvar_dump( is_page(16) );
を追加して、これらが期待通りに動作しているかどうかを確認してください。