質問: wordpressのプラグインオプションとjquery 私はいくつかのcssを変更するためにjqueryを使用するプラグインを作成していますが、私が理解することができないのはwordpressプラグインオプションでjqueryの実行を制御する方法です。 wordpressのオプションはjqueryの "変数"として使用できますか?それとも、すべての場合に固有の.jsファイルが必要ですか。
回答: 変数はwp_localize_scriptを使用してjqueryまたは任意のjavascriptに渡すことができます。例:add_action( 'template_redirect', 'prefix_enqueue_vars' ); function prefix_enqueue_vars() { $script_vars = array( 'setting_1' => get_option( 'some_option' ), 'setting_2' => get_option( 'another_option' ), ); wp_enqueue_script( 'my_script', 'path/to/script.js', array( 'jquery' ), true); wp_localize_script( 'my_script', 'unique_name', $script_vars ); } javascriptで変数を取得する方法:jquery(document).ready(function($) { $var_1 = unique_name.setting_1 $var_2 = unique_name.setting_2 }); wordpressは、javascriptファイルをエンキューする前に、変数を<sript> </script>タグの間に出力するので、それらは使用可能になります。詳しくはwordpressのottoの wp_localize_script をご覧ください。編集する値を返す関数に変数を追加してみてください。私は以下の正確なコードを使っていて、それはうまくいきます。wp_localize_script( 'cmb-scripts', 'maxchar', array( 'charlimit' => c3m_get_the_size( $excerpt_length[0] ) ) ); 以下の変数を返す関数:function c3m_get_the_size() { global $post; global $prefix; $box_size = get_post_meta( $post->id, $prefix.'box_size', true ); if ( $box_size == 'single-single' ) { $excerpt_length = 150; } elseif ( $box_size == 'single-double' ) { $excerpt_length = 150; } elseif ( $box_size == 'single-triple' ) { $excerpt_length = 150; } return $excerpt_length; }