プラグインでJavaScriptをエンキューする方法


14

今回は、プラグインフォルダーにJavaScriptファイルを含めることに取り組んでいます。

テーマディレクトリからウィジェットファイルを転送してプラグインを作成しようとしています。ウィジェットファイルをコピーしましたが、そのウィジェットファイルはJavaScriptファイルに依存していたため、プラグインディレクトリに/ js /フォルダーを作成しました。このファイルがホストされている場所「jquery.repeatable.js」

このコードを使用しましたが、jsファイルが含まれていないようです-

function Zumper_widget_enqueue_script()
{   
    wp_enqueue_script( 'my_custom_script', plugin_dir_url( __FILE__ ) . 'js/jquery.repeatable.js' );
}
add_action('admin_enqueue_scripts', 'Zumper_widget_enqueue_script');

私はフォーラムでこれを検索しました-https : //stackoverflow.com/questions/31489615/call-a-js-file-from-a-plugin-directory

しかし、まだこれは役に立ちませんでした。

質問をまとめ直します。プラグインディレクトリで、このフォルダーの下にjsファイルがあります-/ js /

正しいプロセスとは何かを含めたいのですが、何か登録する必要がありますか?

この部分に何か問題があり'admin_enqueue_scripts'ますか?


回答:


29

コードは正しいように見えますが、スクリプトをadmin_enqueue_scripts実行中のキューに登録しているため、管理領域でのみスクリプトがロードされます

フロントエンドでスクリプトをロードするには、wp_enqueue_scriptsアクションを使用します(wp_enqueue_script()関数とは異なります):

function Zumper_widget_enqueue_script() {   
    wp_enqueue_script( 'my_custom_script', plugin_dir_url( __FILE__ ) . 'js/jquery.repeatable.js' );
}
add_action('wp_enqueue_scripts', 'Zumper_widget_enqueue_script');

また、そのスクリプトはjQueryに依存しているようです。そのため、dependencieまたはスクリプトをjQueryの前にロードできて、動作しないことを宣言する必要があります。また、スクリプトのバージョンを宣言することを強くお勧めします。このようにして、スクリプトを新しいバージョンに更新すると、ブラウザは再度スクリプトをダウンロードし、キャッシュにあるコピーを破棄します。

たとえば、スクリプトのバージョンが1.0の場合:

function Zumper_widget_enqueue_script() {   
    wp_enqueue_script( 'my_custom_script', plugin_dir_url( __FILE__ ) . 'js/jquery.repeatable.js', array('jquery'), '1.0' );
}
add_action('wp_enqueue_scripts', 'Zumper_widget_enqueue_script');

管理領域にロードする場合:

function Zumper_widget_enqueue_script() {   
    wp_enqueue_script( 'my_custom_script', plugin_dir_url( __FILE__ ) . 'js/jquery.repeatable.js', array('jquery'), '1.0' );
}
add_action('admin_enqueue_scripts', 'Zumper_widget_enqueue_script');

1

更新しました:

代わりにこのコードを使用してください

function Zumper_widget_enqueue_script()
{   
    wp_enqueue_script( 'my_custom_script', plugin_dir_url( __FILE__ ) . 'js/jquery.repeatable.js', array('jquery'), '1.0.0', false );
}
add_action('admin_enqueue_scripts', 'Zumper_widget_enqueue_script');

3番目のパラメーターは依存関係を宣言し、4番目のパラメーターはバージョンを定義します。

の5番目のパラメーターをwp_enqueue_script()に設定しますtrue。つまり、このファイルはフッターに読み込まれます。


の3番目のパラメーターはwp_enqueue_script()、スクリプトの依存関係を宣言することです。5番目のパラメーターは、フッターまたはヘッダーにスクリプトを読み込むかどうかを選択するパラメーターです。とにかく、ロードする場所に違いはないと思います。
サイブメタ

ありがとう。私は他のプラグインでどこかを読んでいます-wp_enqueue_script( 'zumper'、get_template_directory_uri()。 '/js/jquery.zumper.min.js',array('jquery'),false,true); 3番目をtrueに設定するとフッターに読み込まれるということですが、このfalse、trueの組み合わせはどういう意味ですか?
WP中間

回答を更新しました。動作しますか?
mukto90

1

通常、plugins_url()メソッドを使用してエンキューを実現します。

function Zumper_widget_enqueue_script()
{   
    wp_enqueue_script( 'my_custom_script', plugins_url('js/jquery.repeatable.js', __FILE__ ), '1.0.0', false );
}
add_action('admin_enqueue_scripts', 'Zumper_widget_enqueue_script');
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.