私はwp_localize_scriptを使って私のテーマオプションからjavascriptファイルにいくつかの値を渡します。最初に私は私のテーマオプションから値を得ました:
$options = get_option('theme');
$flex_auto = $options["slide-auto"];
$flex_animation = $options["slide-animation"];
$flex_direction = $options["slide-direction"];
それから私はwp_localize_script
を使って値の配列を作成しました。
wp_enqueue_script('flexslider');
wp_localize_script('flexslider', 'flex_vars', array(
'flex_auto' => $flex_auto,
'flex_animation' => $flex_animation,
'flex_direction' => $flex_direction
)
);
私のjavascriptファイルで私はこれをしました:
var $anim = flex_vars.flex_animation;
var $auto = flex_vars.flex_auto;
var $dire = flex_vars.flex_direction;
jQuery('.flexslider').flexslider({
animation: $anim,
slideshow: $auto,
controlNav: 'thumbnails',
directionNav: $dire,
slideshowSpeed: 7000,
animationSpeed: 1000,
touch: true,
});
私が使っているjQueryプラグインがtrue/falseで動作している間、私のテーマオプションは0/1ブール値で動作するチェックボックスで作られた値を含みます。 trueまたはfalseの2つのオプションを持つドロップダウンメニューを使用して、ブール値を文字列として保存しようとしましたが、うまくいかないようです。テーマオプションからJavaScriptファイルにブール値を渡す方法を教えてください。どんな提案やヒントも大歓迎です:)
これを試して:
$options = get_option( 'theme' );
wp_localize_script( 'flexslider', 'flex_vars', array (
'flex_auto' => ($options['slide-auto']) ? 'true' : 'false',
'flex_animation' => $options['slide-animation'],
'flex_direction' => $options['slide-direction']
) );
slide-auto
があなたがブール値を作ったオプションであると仮定します。
このスクリプトはテストされていません。ここに直接入力しました。
これは私のために働く正しい答えです
wp_add_inline_script('helloworld','var site_config ='.json_encode(array (<Your array>)));