1

私が望むのは、カスタム JavaScript をプラグインのホームページにのみ追加することです。

これが私がしたことです:

1.最初にスクリプトを登録し、

function register_my_plugin_script() {
        /* Register our script. */
        wp_register_script( 'my-plugin-script', plugins_url('/script.js', __FILE__), array('jquery'));
    }
add_action( 'admin_init', 'register_my_plugin_script' );

2.次に、それを呼び出し、

function call_my_script(){
  wp_enqueue_script( 'my-plugin-script' );
}

3.次に、次のようにホームページでのみ呼び出そうとしました:

function my_home_page(){
   add_action('admin_enqueue_scripts', 'call_my_script');
}

しかし、それはスクリプトを追加しませんでした。

メニューページを追加する追加のコード:

function my_menu_pages(){
  add_menu_page('some title', 'some menu', 'manage_options', 'my-plugin-homepage', 'my_home_page');
}
add_action('admin_menu', 'my_menu_pages');

注:my_home_pageこのように登録または呼び出しせず にスクリプトを関数に直接含めると、機能します。

function my_home_page(){
   wp_enqueue_script( 'my-plugin-script', plugins_url('/script.js', __FILE__), array('jquery'));
}

これを行う最善の方法は何ですか?

4

1 に答える 1

1

管理領域にプラグインのページへのフックがありますが、それが何と呼ばれているのかを正確に理解するのは難しい場合があります。

最初にこれを試してください:

add_action('admin_enqueue_scripts', 'my_plugin_enqueue_scripts' );
function my_plugin_enqueue_scripts($hook) 
{
    echo "<!-- Hook = {$hook} -->" . PHP_EOL;
}

...次に、管理領域のプラグインのページにアクセスし、HTMLソースを表示して、その変数の出力を見つけます。または、ブレークポイントを設定してデバッガーで表示します。

フック名を見つけたら、プラグインコードで次のことを実行できます。

add_action('admin_enqueue_scripts', 'my_plugin_enqueue_scripts' );
function my_plugin_enqueue_scripts($hook) 
{
    if ($hook == 'my_plugin_page_hook-location')
    {
        wp_register_script(...);
        wp_enqueue_script(...);

        wp_register_style(...);
        wp_enqueue_style(...);      
    }
}
于 2013-03-14T10:36:24.117 に答える