カスタム投稿追加/編集ページにスクリプトを追加しようとしているが機能していない
PHPコード、(動作していてGet Jsコード)
if(strstr($_SERVER['REQUEST_URI'], 'wp-admin/post-new.php') || strstr($_SERVER['REQUEST_URI'], 'wp-admin/page-new.php')) {
wp_enqueue_script('myscript', 'http://exemple.com/wp-content/themes/theme/js/rt_api.js');
問題はJsコードが結果を与えないことです:
あなたが仕事を取り入れるために、そして一般的にはより良くするためにあなたがしたいことがいくつかあります。これが完全なコードです。
function my_theme_enqueue_admin_scripts() {
$screen = get_current_screen(); // This is how we will check what page we are on
if ( in_array( $screen->id, array( 'post', 'page') ) && $screen->action == 'add' ) {
// Use get_template_directory_uri so we don't need to hardcode the URL to our theme folder
wp_enqueue_script('myscript', get_template_directory_uri().'/js/rt_api.js');
}
}
// This action will call your function at the right time to enqueue your script for the admin area
add_action( 'admin_enqueue_scripts', 'my_theme_enqueue_admin_scripts' );
admin_enqueue_scripts
を使用して、管理領域の正しい時間にスクリプトをエンキューするための関数を呼び出しました。$screen
オブジェクト を使用して、現在表示されているページを通知します。それにたくさんの属性があります。私たちの場合、私は$screen->id
が'post'
または'page'
であるかどうかを調べ、$screen->action
が'add'
であるかどうかを調べます。get_template_directory_uri()
を使用します。こうすれば私達はURLを壊すことなくあらゆるWordPress設定で私たちのテーマを使用することができます。あなたのスクリプトでjQueryを使う
あなたのスクリプトでjQueryを使うとき、WordPressに含まれているjQueryのバージョンがjQuery
のための$
省略形を無効にするので、あなたは$
をすぐに使うことができません。これは、当時は複数のJavascriptライブラリが$
を使用するのが一般的なためです。
JQueryを使用するには、JavaScriptに2つの選択肢があります。
1つ目は$
の代わりにjQuery
を使うことです。
jQuery('#my-id').on('click', function() {} );
もう1つは、スクリプトのコードを自己呼び出し関数にラップすることです。 jQuery
をパラメータとして渡してから、引数に$
という名前を付けます。
(function( $ ) {
// your code here
})( jQuery );
デバッグのヒント
ページのソースを表示して、あなたの 'myscript'がプリントアウトされていることを確認してください
印刷されたURLが正しいことを確認してください(タイプミスがあるのは簡単です)
javascriptにエラーがないことを確認してください
ハンドルmyscript
を使用して競合を引き起こす別のスクリプトです。