Est-ce que quelqu'un connaît une solution pour cela?
Je veux supprimer ( pas annuler l'enregistrement ) tous les widgets d'une barre latérale avec une fonction.
Vous pouvez ajouter cette fonction à votre fichier functions.php.
add_filter( 'sidebars_widgets', 'disable_all_widgets' );
function disable_all_widgets( $sidebars_widgets ) {
$sidebars_widgets = array( false );
return $sidebars_widgets;
}
Vous pouvez également utiliser les balises conditionnelles Wordpress pour désactiver les widgets uniquement sur certaines pages. Par exemple; cela ne ferait que désactiver les widgets sur la page d'accueil.
add_filter( 'sidebars_widgets', 'disable_all_widgets' );
function disable_all_widgets( $sidebars_widgets ) {
if ( is_home() )
$sidebars_widgets = array( false );
return $sidebars_widgets;
}
Il existe un moyen rapide de le faire via jQuery et la console de développement. Tout d’abord, accédez à Apparence Widgets et ouvrez la console du développeur (j’utilise donc Chrome. Il suffit donc d’appuyer sur CTRL + SHIFT + J sur le clavier pour l’ouvrir). Cette action ne peut pas être annulée, soyez donc prudent et faites d'abord une sauvegarde de la base de données.
$('.button-link.button-link-delete.widget-control-remove').click();
Cela consiste à utiliser un sélecteur CSS pour obtenir une liste de tous les boutons/liens "Supprimer" de la page et à simuler un clic dessus.
Cela laisse vos barres latérales enregistrées, mais vide tous les widgets ajoutés.
Je l'ai utilisé aujourd'hui car un thème que j'ai installé pré-remplissait toutes les barres latérales avec des tonnes de widgets qui ralentissaient le chargement du site, même s'ils n'étaient utilisés que sur certaines pages.
Remarque: pour une raison quelconque, ceci semblera supprimer même les modèles de widget sur la gauche. Ce n'est pas. Il suffit d’actualiser la page de gestion des widgets et ils seront tous là, disponibles pour être ajoutés aux barres latérales.