Wp_footer()にフックされた関数の順序を設定できるかどうか疑問に思いました。私はエコーする関数を作成しました:
<script> ajsfunction(); </script>
この関数のjsファイルもエンキューしてフッターに印刷しましたが、上記はjsファイルにリンクする前に印刷されているので機能しません。このスクリプトは特定のページでのみ実行されるわけではないためです。もの.
wp_footerでこれができない場合、キューに入れられたjsファイルの後にこのスクリプトタグを出力する方法はありますか?
前もって感謝します。
推奨される方法は、エンキューしている.jsファイル内で関数を呼び出すことです。それができない理由はありますか?
スクリプト内からWPオプションなどの動的データにアクセスする必要がある場合は、 wp_localize_script
を使用して、必要なデータでJavaScriptオブジェクトを初期化します。
$data = array('some_option' => get_option('an_option_from_my_theme'));
wp_enqueue_script('your_script_handle', 'path/to/the/script.js');
wp_localize_script('your_script_handle', 'my_theme_options', $data);
スクリプトでは、JavaScriptオブジェクトと同じようにデータにアクセスできます。
console.log(my_theme_options.an_option_from_my_theme);
自分のエンキューする別のJavaScriptファイル内にコードを配置し、プラグインをこのファイルの依存関係にします。
WPがフッタースクリプトを出力した後、wp_footer
フック内にコードを追加します。
add_action('wp_footer', function(){
?>
<script>
// your javascript
</script>
<?php
}, 100);
"100"は優先順位で、数字が大きいほど、アクションの実行優先順位が低くなります。スクリプトは "20"の優先順位で印刷されます
あなたがたくさんのjsコードを持っているなら、私は(1)で行きます、そうでなければインラインのjavascriptは問題ありません(2)。
これを見てください。
http://codex.wordpress.org/Function_Reference/add_action
あなたは2つのフックされた機能に優先順位を設定することができます
add_action('wp_footer','your_func',100);
add_action('wp_footer','your_func1',200);