API JS Customizer

10

D'accord, j'ai donc essayé de m'éduquer à la création de nouvelles sections de panneaux et de contrôles de manière dynamique à l'aide de l'API JS du client.

Cela a été frustrant quelques jours et je n’étais pas en mesure d’obtenir le moyen exact d’y parvenir via l’API JS.

Jusqu'à présent, c'est quelque chose que je fais pour y arriver mais sans succès:

    // for Settings
    api.create( 
        params.id, 
        params.id, 
        params.default, 
        params.args 
    );

    // for controls
    var controlConstructor = api.controlConstructor[params.type];
    var control = new controlConstructor(params.id, {
        params: params,
        previewer: api.previewer
    });
    api.control.add( 
        params.id, 
        control 
    );

     //for Sections
     var section = new api.Section(params.id, { 
        params: params
     }); 
    api.section.add( params.id, section );
    api.section('section_id').activate();

Aucun d'entre eux ne semble fonctionner car la section n'apparaît pas et je dois exécuter api.section('section_id').activate() deux fois dans la console pour que la section apparaisse, la même chose se produit avec le contrôle.

    
posée Aniruddh Joshi 07.05.2015 - 22:52

2 réponses

3

1) Peut-être que vous vous connectez à l'état api.ready qui vous évitera d'avoir à appeler votre section deux fois

(function($, api){
  api.bind( 'ready', function() {...

  }
})(jQuery);

Dans Trac, une note indiquait: "Notez que les API pour les contrôles ajoutés dynamiquement et les API pour les sections et les panneaux personnalisés basés sur JS ne sont pas encore disponibles à partir de WordPress 4.2. Voir le # 30741." La lecture de cette analyse se termine par "probablement pas pour 4.5 pour le moment" et vos efforts risquent donc d'être vains = (

2) Pour référence, vous pouvez trouver l'API wp_customize JS ici . Ce lien peut être utile. aussi bien.

3) Je n'ai pas assez de représentants pour un troisième lien, mais vous pouvez consulter Kirki.org, un cadre d'assistance pour les champs de personnalisation. Kirki est également très actif sur Github.

4) Du côté de PHP, vous pouvez utiliser l'option "active_callback" de votre tableau de champs pour présenter les champs de manière dynamique.

$wp_customize->add_control( 'some_single_page_specific_option', array(
  'label'           => esc_html__( 'Single Page Option' ),
  'section'         => 'my_page_options',
  'active_callback' => 'if_is_singular',
));

function if_is_singular(){
  if( is_singular() ){
    return true;
  } else {
    return false;
  }
}

Bonne chance.

    
réponse donnée Philip Ingram 08.04.2016 - 18:47
-2

Je suggérerais, au lieu de réinventer la roue, de considérer ce cadre comme une base pour vos projets. enlace .

Celui-ci est le meilleur que j'ai trouvé pendant que j'apprenais et cherchais des cadres. Vous pouvez étendre ce cadre avec vos propres contrôles personnalisés. Le lien ci-dessous vous aidera à comprendre et à mettre en œuvre la communication entre le personnalisateur et son aperçu via jQuery ou javascript.

enlace

    
réponse donnée Mohit Aneja 30.05.2015 - 07:29

Lire d'autres questions sur les étiquettes