J'essaie d'accéder à une zone de widget dans le personnaliseur via JS dans le but de compter le nombre de widgets dans la section.
Je suis en mesure d'accéder à certaines informations avec le code ci-dessous mais je ne suis pas tout à fait là.
wp.customize.section( 'sidebar-widgets-sidebar-1', function( section ) {
console.info( section );
});
Tandis que vous pouvez consulter les instances WidgetControl
contenues dans une SidebarSection
, il est préférable de regarder plutôt la setting
sous-jacente qui répertorie les widgets contenus dans de la barre latérale. Alors fais quelque chose comme ça:
wp.customize( 'sidebars_widgets[sidebar-1]', function( sidebarSetting ) {
console.info( sidebarSetting.get().length );
} );
Alternativement, avec une fonction réutilisable:
/**
* Get the count of widgets in a given sidebar.
*
* @param {string} sidebarId Sidebar ID.
* @returns {jQuery.promise} Resolving with the number of widgets in the sidebar.
*/
function getSidebarWidgetCount( sidebarId ) {
var deferred = jQuery.Deferred();
wp.customize( 'sidebars_widgets[' + sidebarId + ']', function( sidebarSetting ) {
deferred.resolve( sidebarSetting.get().length );
} );
return deferred.promise();
}
Usage:
getSidebarWidgetCount( 'sidebar-1' ).done( function( count ){
console.info( count );
} );