2015-12-26 12 views
5

Ho creato un controllo personalizzato per Wordpress Customizer e vorrei impostare il mio controllo all'interno di uno script (Instafeed.js), per modificare il numero limit.Utilizzo di Wordpress Customizer in Javascript

seguito this answer questo è come ho fatto finora

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

Funzioni

$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'); 
} 

Qualcuno potrebbe dirmi dov'è l'errore? Ho cercato questo per un po '.

risposta

2

Beh, hai un errore di sintassi qui :)

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

Quindi, si dovrebbe cambiare quel blocco di codice per

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

In realtà non è necessariamente bisogno di codificare JSON qui dato che è solo un numero. Ma se quello fosse un array o un oggetto, sì, dovresti averlo codificato.

E nel codice php si dovrebbe fare $imglimit globale:

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

o semplicemente mettere che in js:

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

Grazie per la risposta, ho provato, ma non è ancora funzionante. Lo script non si rompe più (posso vedere le immagini), ma è di default un limite di 20 immagini (terza opzione nel controllo del personalizzatore, se la terza opzione è 40 per esempio, rimane 20). Se provo a cambiare il limite attraverso il customizer, i limiti rimangono comunque a 20. (Ho provato anche a svuotare il cache). Qualche idea sul perché il customizer non stia aggiornando il 'limite'? – dbsso

+0

@dbsso e se il limite è hardcode, funzionerebbe come previsto? –

+0

Funziona con numeri definiti, se capisco cosa stai chiedendo. – dbsso

Problemi correlati