私はプログラマーではないので、私は初めてのプラグインを作成しています。私はチュートリアルに従って、コーデックスなどを読んでいます。
私のプラグインは、特定の条件が満たされたときにユーザーに通知を表示することで構成されています。私はそれをjQueryで書き、スタイルとともにプラグインによってエンキューされるjsファイルに配置しました。
私は設定ページと単純なテキストボックスのあるフォームをwpオプションテーブルにデータを保存するための単純なチュートリアルに従って、テストしましたが、データは正常に保存されました。
どうやってwpオプションから自分のjsファイルにデータを転送するのですか。
jQuery('.notice_container').wrap(<'div id="custom_notice"><span>Hello World....</span></div>')
お時間をいただきありがとうございます。
フォームの送信にAJAXを使用していないと仮定すると、 wp_localize_script()
を使用できます。これが単純化されたバージョンです:
あなたのプラグインファイルで:
function wpse105919_add_scripts(){
wp_enqueue_script( 'myjs', plugins_url( '/myjs.js', __FILE__ ) );
wp_localize_script( 'myjs', 'jsLocalizedObject', 'hello world');
}
add_action('wp_enqueue_scripts', 'wpse105919_add_scripts');
myjs.js
ファイルの内容:
alert( jsLocalizedObject );
wp_localize_script()
は、ドキュメントの<head>
にjsLocalizedObject
というグローバル変数を追加します。ページのソースを見ると、次のようになります。
<script type='text/javascript'>
/* <![CDATA[ */
var jsLocalizedObject = "hello world";
/* ]]> */
</script>
wp_options
テーブルから値を取得するには、 get_option()
を使用して、hello world
関数のwp_localize_script
の代わりに結果を渡すことができます。
あなたのコードは次のようになります。
function wpse105919_add_scripts(){
wp_enqueue_script( 'myjs', plugins_url( '/myjs.js', __FILE__ ) );
$myoption = get_option('option_name', 'default_value');
wp_localize_script( 'myjs', 'jsLocalizedObject', $myoption);
}
add_action('wp_enqueue_scripts', 'wpse105919_add_scripts');
そしてあなたのjQueryの部分:
jQuery('.notice_container').wrap(<'div id="custom_notice"><span>' + jsLocalizedObject + '</span></div>')
JSをダッシュボードに読み込む必要がある場合は、代わりに admin_enqueue_script
を使用してください。