2011-08-16 7 views
1

私はそうのように、私は建物だテーマでJSを変更するwp_localize_script();を使用しています:Wordpressのテーマオプション - wp_localize_script();

wp_enqueue_script('custom', get_bloginfo('template_directory') . '/js/script.js'); 
    $settings = get_option('bro_options'); 
    wp_localize_script('custom','settings',$settings); 

これは良いですが、これが動作する方法は、それが右の問題のJSファイルの前にインラインJSを書き込んで特定の変数を使用してJSを変更し、それがどのように機能するかを示すことができます。

問題は、このオプションが本当に好きではなく、インラインJSをどのように出力するかです。誰かがこれに代わるものを知っていますか?私はこれが皆さんのテーマオプションでこれをどうやって行うのではないと確信していますので、別の方法が必要です。

何かお手伝いがあれば、プラグインへのリンクもありません。

簡潔に:wp_localize_script();を使用するか、より良い使い方を探しています。

答えて

0

settings.js.phpというファイルを作成し、wp-config.phpというファイルを作成しました。

ので、同様:

<?php 

    header("Content-type: application/x-javascript"); 

    $c = 0; 

    while($exists !== true && $notfound !== true) { 

     $c++; 
     $str = $str . '../'; 

     if(file_exists($str.'wp-config.php')) { 
      $exists = true; 
      include($str.'wp-config.php'); 

      $i = 0; 
      $amount = sizeof($bro); 

      echo 'var settings={'; 
      foreach($bro as $key => $value) { 
       $i++; 
       if($i<$amount) { 
        echo $key . ':"' . $value . '",'; 
       } else { 
        echo $key . ':"' . $value . '"'; 
       } 
      } 
      echo '};'; 

     } 

     if($c === 20) { 
      $notfound = true; 
     } 

    } 

?> 

どの出力だろう。このような変数で私のオプション:私は私のcustom.jsファイルの前にいくつかの設定があった場合、私が決定することができるそのように、このファイルをエンキューう

var settings = { 
    foo: true, 
    bar: false 
}; 

オンとオフ。

if(settings.foo === true) { 
    ... 
} 

これはすべてインラインJSを使用していないため、キャッシュに問題があるかもしれませんが、インラインですべてのオプションを出力するよりもむしろそのことがあります。

関連する問題