Ok, então eu tenho tentado me educar para criar novas seções e controles de painéis dinamicamente usando a API JS do personalizador.
Tem sido frustrante há alguns dias e não consegui encontrar a maneira exata de conseguir isso por meio da API JS.
Até agora, isso é algo que estou fazendo para que isso aconteça, mas sem sucesso:
// 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();
Nenhum deles parece funcionar porque a seção não aparece e eu tenho que executar api.section('section_id').activate()
duas vezes no console para fazer a seção aparecer, o mesmo ocorre com o controle.
fonte
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.
Isso resume tudo. :(Sugiro que, em vez de reinventar a roda, talvez você considere essa estrutura como base para seus projetos. http://wpshed.com/wordpress-theme-customizer-framework/ .
Este é o melhor que encontrei enquanto aprendia e procurava estruturas. Você pode estender essa estrutura com seus próprios controles personalizados, e o link abaixo o ajudará a entender e implementar a comunicação entre o personalizador e a visualização do personalizador via jQuery ou javascript.
https://conductorplugin.com/developing-wordpress-customizer-part1/
fonte