あなたがwp_register_script()
を使う必要があるとき、私は理解するのに苦労しています。現在のところ、私は以下のようにしています。
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue' ) );
function enqueue() {
$handle = 'some-handle';
$js = 'http://example.com/my.js';
wp_register_script( $handle, $js );
wp_enqueue_script( $handle );
}
私はたくさんの読書をしました(コーデックス、ブログなど)が、いつ私が最初に登録するべきであるか、または私がちょうどエンキューするべきであるか理解できません。例として、私は気付いた TwentyTwelve はスタイルやスクリプトを登録していない、それはそれらをエンキューするだけです。
wp_register_script()
コーデックスページ 文字通り:
後で
wp_enqueue_script()
で使用するためにWordPressにJavaScriptを登録する安全な方法。
つまり、スクリプトを登録したいがページに直接ロードしたくない場合は、一度ファイルを登録しておき、必要なときにロードすることができます。
例えば:
いくつかの機能をロードするswitchステートメントがありますが、3つのケースのうち2つは特定のJavaScriptファイルを必要とし、1つは必要としません。スクリプトを毎回キューに入れるか、リソースを追加するか、必要なときに単にスクリプトをキューに入れることができます。
...
wp_register_script( 'my-handy-javascript', ... );
...
switch( $somevar ) {
case 'value':
wp_enqueue_script( 'my-handy-javascript' ); // needs the file
...
break;
case 'value2':
wp_enqueue_script( 'my-handy-javascript' ); // needs the file
...
break;
default:
case 'value3': // doesn't needs the file
...
break;
}
スクリプトを登録してからエンキューする必要はありませんが、必要なすべてのスクリプトをコード内のすべての場所ではなくfunctions.php
内のどこかに登録すると、コード内にロジックを提供できます。
コーデックスはまた、次のように伝えます。
この関数を呼び出すには
wp_enqueue_scripts
アクションを使用し、管理者側で呼び出すにはadmin_enqueue_scripts
を使用してください。
つまり、フロントエンドの と にバックエンドでスクリプトをエンキューしたい場合は、一度スクリプトを登録してから、フロントエンドのwp_enqueue_script
とバックにロードすることができます。 admin_enqueue_script
で終了します。
この方法では、1つのテーマ、プラグイン、ウィジェット、その他何でも同じエンキューリソースを2回使用することはできません。
wp_register_script
の前にwp_enqueue_scripts
を使用することの主な利点は、 Codex から次の段落で説明されています。
Wp_register_script()を使用して事前登録されているスクリプトが、キューに入れられている別のスクリプトの依存関係としてリストされている場合は、wp_enqueue_script()を使用して手動でキューに入れる必要はありません。 WordPressは、登録されたスクリプトのハンドルを依存関係として一覧表示するキューに登録されたスクリプトを含める前に、登録されたスクリプトを自動的に含めます。
あなたがこれを必要としないと信じるならば(例えば、あなたのスクリプトが依存関係に関与しないことを100%確信しているので)、おそらくwp_enqueue_scripts
を直接使うことができます、予備のwp_register_script
。
私はいくつかの記事を読み終え、次の結論に至りました。私はそれが役に立つと思います。
a。フロントエンドに1回、バックエンドに1回(adminページ)のように複数の場所にロードするスクリプトが必要だとします。これで、スクリプトを一度だけ登録できます。その後、フロントエンドとバックエンドで個別にエンキューします。見て、エンキューとはロードを意味します。登録することはロードすることを意味しません。登録しない場合は、キューに入れた回数だけ自動的に登録されます。一方、一度登録すると、何回エンキューしても1回登録されます。
b。スクリプトを他のスクリプトの依存関係として使用したい場合は、wp_enqueue_script()を使用してそれをエンキューする必要はありません。 wp_register_script()で登録するだけです。 wp_enqueue_script()でキューに入れられた他のスクリプトの依存関係としてこのハンドル名を使うと、自動的にキューに入れられます。
ここに描かれた結論は私自身の推論を反映することに注意してください。間違っている場合は修正してください。そして、あなたは異なったそしてもっと良い結論に達したかもしれません。もしそうなら、私たちに知らせてください。知るか?おそらくあなたのものは最高です。言われているように、「多くの教義と同じくらい多くの救いの方法があります。」:)
https://sxbook.blogspot.com/2018/12/wpregisterscript-when-to-use.html