Personalizador JS API

10

Bueno, he estado tratando de educarme para crear nuevas secciones de paneles y controles de forma dinámica utilizando la API JS del personalizador.

Han sido unos días frustrantes y no he podido obtener la manera exacta de lograrlo a través de la API de JS.

Hasta ahora, esto es algo que estoy haciendo para que suceda, pero sin éxito:

    // 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();

Ninguno de ellos parece funcionar ya que la sección no aparece y tengo que ejecutar api.section('section_id').activate() dos veces en la consola para que aparezca la sección, lo mismo ocurre con el control.

    
pregunta Aniruddh Joshi 07.05.2015 - 22:52

2 respuestas

3

1) Puede vincularse al estado api.ready que puede solucionar el tener que llamar a su sección dos veces

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

  }
})(jQuery);

Vi una nota en el trac que decía "Tenga en cuenta que las API para los controles agregados dinámicamente y las API para las secciones y paneles personalizados con plantilla JS aún no están disponibles a partir de WordPress 4.2. Consulte # 30741". Leer que trac termina con "probablemente no para 4.5 en este momento", por lo que tus esfuerzos pueden ser inútiles = (

2) Como referencia, se puede encontrar la API de JS wp_customize aquí . Este enlace puede ser útil también.

3) No tengo suficiente representante para un tercer enlace, pero puede mirar Kirki.org, que es un marco de ayuda para los campos del personalizador. Kirki también es muy activa en Github.

4) En el lado de PHP, puede usar la opción "active_callback" en su matriz de campo para presentar campos de forma dinámica.

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

Buena suerte.

    
respondido por el Philip Ingram 08.04.2016 - 18:47
-2

Yo sugeriría que en lugar de reinventar la rueda, tal vez consideres este marco como una base para tus proyectos. enlace .

Este es el mejor que encontré mientras estaba aprendiendo y buscando marcos. Puede ampliar este marco con sus propios controles personalizados y el siguiente enlace lo ayudará a comprender e implementar la comunicación entre el personalizador y la vista previa del personalizador a través de jQuery o javascript.

enlace

    
respondido por el Mohit Aneja 30.05.2015 - 07:29

Lea otras preguntas en las etiquetas