web-dev-qa-db-ja.com

カスタム投稿追加/編集ページにスクリプトを追加する

カスタム投稿追加/編集ページにスクリプトを追加しようとしているが機能していない

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コードが結果を与えないことです:

自分のJsコードとHTMlコードを確認してください

1

あなたが仕事を取り入れるために、そして一般的にはより良くするためにあなたがしたいことがいくつかあります。これが完全なコードです。

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 を使用して、管理領域の正しい時間にスクリプトをエンキューするための関数を呼び出しました。
  • WordPressが管理領域用に作成している $screenオブジェクト を使用して、現在表示されているページを通知します。それにたくさんの属性があります。私たちの場合、私は$screen->id'post'または'page'であるかどうかを調べ、$screen->action'add'であるかどうかを調べます。
  • 最後に、テーマフォルダのURLを取得するために 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 );

デバッグのヒント

  • ページのソースを表示して、あなたの 'my​​script'がプリントアウトされていることを確認してください

  • 印刷されたURLが正しいことを確認してください(タイプミスがあるのは簡単です)

  • javascriptにエラーがないことを確認してください

  • ハンドルmyscriptを使用して競合を引き起こす別のスクリプトです。

3
Seamus Leahy