Bien, he estado tratando de educarme para crear nuevas secciones de paneles y controles dinámicamente usando la API JS del personalizador.
Han sido unos días frustrantes y no pude obtener la forma exacta de lograr esto a través de JS API.
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.
fuente
Note that the APIs for dynamically-added controls, and APIs for JS-templated custom Sections and Panels are not yet available as of WordPress 4.2.
Eso lo resume todo. :(Sugeriría que en lugar de reinventar la rueda, tal vez considere este marco como base para sus proyectos. http://wpshed.com/wordpress-theme-customizer-framework/ .
Este es el mejor que encontré mientras estaba aprendiendo y buscando marcos. Puede ampliar este marco con sus propios controles personalizados y el enlace a continuación 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.
https://conductorplugin.com/developing-wordpress-customizer-part1/
fuente