Okej, więc próbowałem nauczyć się dynamicznie tworzyć nowe sekcje paneli i formanty za pomocą interfejsu API JS dostosowywania.
To było frustrujące kilka dni i nie byłem w stanie znaleźć dokładnego sposobu na osiągnięcie tego poprzez JS API.
Jak dotąd robię to, aby tak się stało, ale bez powodzenia:
// 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();
Żaden z nich nie wydaje się działać, ponieważ sekcja nie pojawia się i muszę api.section('section_id').activate()
dwukrotnie uruchomić konsolę, aby sekcja się pojawiła, to samo dotyczy kontroli.
źródło
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.
To podsumowuje. :(Sugerowałbym zamiast wynaleźć koło na nowo, być może weźmiesz pod uwagę ten framework jako bazę dla swoich projektów. http://wpshed.com/wordpress-theme-customizer-framework/ .
Ten jest najlepszy, jaki znalazłem podczas nauki i szukania ram. Możesz rozszerzyć tę platformę o własne niestandardowe elementy sterujące, a poniższy link pomoże ci zrozumieć i wdrożyć komunikację między adaptatorem a podglądem dostosowywania za pomocą jQuery lub javascript.
https://conductorplugin.com/developing-wordpress-customizer-part1/
źródło