1

私はthickboxとmedia-uploadを使用していくつかの画像を設定するプラグインに取り組んでいます。どちらもこのコードを使用してロードされません:

  function add_my_files() {
        echo 'happy happy happy';
        wp_register_style( 'adminstyles', plugins_url('/css/slider.css', __FILE__));
        wp_enqueue_style( 'adminstyles' );
        wp_enqueue_style('thickbox');

        wp_enqueue_script('media-upload');
        wp_enqueue_script('thickbox');

        wp_register_script('hdjs',plugins_url('/js/slider.js', __FILE__),array('media-upload','thickbox'),'',true);
        wp_enqueue_script('hdjs');
    }

add_action( 'admin_init', 'add_my_files' );

私のcssファイルとjsファイルはロードされますが、thickboxとmedia-uploadはロードされません。

ありがとう

4

1 に答える 1

1

アセットファイルをWPに含めるための正しいフックは次のadmin_enqueue_scriptsとおりです。

注:実際に必要なときにjs / cssファイルを含めるためにもget_current_screen(以下の定義を参照)を使用することをお勧めします。is_my_admin_screen()

add_action('admin_enqueue_scripts', 'add_my_files');

function add_my_files()
{
    /*
     * a good WP citizen only loads
     * their javascript/css where it is needed
     */
    if ( ! is_my_admin_screen()) // defined below
        return;

    wp_register_style('adminstyles', plugins_url('/css/slider.css', __FILE__));
    wp_enqueue_style('adminstyles');
    wp_enqueue_style('thickbox');

    wp_enqueue_script('media-upload');
    wp_enqueue_script('thickbox');

    wp_register_script('hdjs', plugins_url('/js/slider.js', __FILE__), array('media-upload', 'thickbox'), '', true);
    wp_enqueue_script('hdjs');
}

function is_my_admin_screen()
{
    $screen = get_current_screen();

    if (is_object($screen) && $screen->id == 'my_plugin_page_id') // var_dump($screen->id); find your own id
        return true;
    else
        return false;
}

参照:http ://codex.wordpress.org/Plugin_API/Action_Reference/admin_enqueue_scripts参照:http ://codex.wordpress.org/Function_Reference/get_current_screen


うまくいけば、すべてのプラグインをラップするためにクラスを使用していることに加えて、これよりも悪い問題が発生します。

フィードバックしてください。WPプラグインは食べ物とビールをテーブルに置くので、私はこの問題に非常に興味があります。

于 2012-12-27T22:54:22.783 に答える