web-dev-qa-db-fra.com

Thème Personnalisateur - Choisissez où la zone du widget apparaît pour permettre aux utilisateurs d'organiser des widgets

Je crée un thème et j'ai un problème avec les widgets et les zones de widgets. J'utilise le thème Customizer pour permettre à l'utilisateur de modifier le contenu, les couleurs, etc.

Je sais comment créer une zone de widget. Je dois pouvoir ajouter cette zone de widget à une section spécifique du personnalisateur de thème. Par exemple, le thème zerif-lite (comme illustré ci-dessous) comporte une zone de widget située sous le symbole

Notre section de focus - Panel

Nos widgets de section de focus - Section

Je veux la même chose dans mon thème, être capable de choisir où la zone du widget est affichée dans le personnalisateur.

Remarque: J'ai consulté le code de zerif-lite , mais je ne pouvais toujours pas comprendre comment ils l'avaient fait.

De plus, je sais comment créer Panels, Sections, Settings et Controls, mais pas comment créer une zone de widget.

enter image description here

2
Kaspar Lee

Vous pouvez vous déplacer dans le personnaliseur en accédant simplement à la structure de données et en affectant une valeur différente au panneau. Donc, en supposant que votre zone de widget, créée de la manière habituelle, s'appelle wpse210938_area et que vous voulez la déplacer vers le panneau wpse210938_panel, procédez comme suit:

add_action( 'customize_register', 'wpse210938_move_widget_area' );
function wpse210938_move_widget_area () {
  global $wp_customize;
  $wp_customize->get_section ('sidebar-widgets-wpse210938_area')->panel = 'wpse210938_panel';
  }

Le seul inconvénient est que, si vous avez activé le mode débogage, vous aurez un avertissement php "Création d'un objet par défaut à partir d'une valeur vide", probablement parce que WP charge les dernières sections du widget sont encore vides.

1
cjbj