2015-12-26 7 views
5

Wordpressカスタマイザ用のカスタマイズされたコントロールを作成しましたが、limitの番号を変更するためにスクリプト(Instafeed.js)の中にコントロールを設定したいと思います。JavaScriptでWordpressカスタマイザを使用する

this answerに続き、これは間違いがどこにあるか誰も私を言うことができる私がこれまで

<script type="text/javascript"> 
      var userFeed = new Instafeed({ 
      get: '', 
      tagName: '', 
      clientId: '', 
      limit: var imglimit = <?php echo json_encode($imglimit); ?>;, 
      }); 
      userFeed.run(); 
</script> 

機能

$wp_customize->add_setting(
     'imglimit', 
     array(
      'default'  => '', 
      'section'  => 'section', 
)); 
$wp_customize->add_control('imglimit', array(
     'label'  => __('test'), 
     'section' => 'section', 
     'settings' => 'imglimit', 
     'type'  => 'select', 
     'choices' => array(
     '5' => '5', 
     '10' => '10', 
     '20' => '20', 
    ), 
)); 

function theme_customizer() 
{ 
    $imglimit = get_theme_mod('imglimit'); 
} 

それをどうやっているのですか?私はこれをしばらく探し続けてきました。

答えて

2

さて、あなたはここで構文エラーを持っている:)

 var userFeed = new Instafeed({ 
     get: '', 
     tagName: '', 
     clientId: '', 
     limit: var imglimit = <?php echo json_encode($imglimit); ?>;, 
//    ^^^^^^^^^^^^ here      and here ^
     }); 

をだから、あなたは実際にあなたが必ずしもJSONエンコードする必要はありません

 var userFeed = new Instafeed({ 
     get: '', 
     tagName: '', 
     clientId: '', 
     limit: <?php echo json_encode($imglimit); ?>, 
     }); 

にコードのブロックを変更する必要がありますここはちょうど数字なのでここで。しかし、それが配列やオブジェクトであれば、それをコード化するべきです。

そして、あなたのPHPコードであなたが$imglimitをグローバルにする必要があります。

function theme_customizer() 
{ 
    global $imglimit; 
    $imglimit = get_theme_mod('imglimit'); 
} 

それともJSにそれを置く:答えのための

 var userFeed = new Instafeed({ 
     get: '', 
     tagName: '', 
     clientId: '', 
     limit: <?php echo json_encode(get_theme_mod('imglimit')); ?>, 
     }); 
+0

おかげで、私はそれを試してみましたが、それはまだ働いていません。スクリプトはもはや壊れません(画像が見えます)が、デフォルトでは20枚の画像の制限があります(3番目のオプションが40の場合は20になります)。カスタマイザを使用して制限を変更しようとすると、制限は20にとどまります。 (私もキャッシュをクリアしようとした)。カスタマイザが「制限」を更新しない理由は何ですか? – dbsso

+0

@ dbsso、あなたが限界をハードコードするなら、それは期待どおりに動くでしょうか? –

+0

あなたが何を求めているのか分かっていれば、定義された数字で動作します。 – dbsso

関連する問題