WordPress : Bonnes pratiques concernant la création de widgets personnalisés ?

Publié par Jean-Michel le

Je crée un thème et j’ai besoin de créer et d’enregistrer quelques widgets personnalisés pour ma barre latérale.

J’ai besoin d’étendre la classe widget (pour chaque widget) pour ce faire, ce qui produit une tonne métrique de code. Cela semble vraiment encombrer mon functions.php – d’autant plus que j’ai plus de 5 widgets personnalisés à ce stade.

Je me demandais s’il existe des directives recommandées sur la meilleure façon d’inclure des widgets personnalisés dans votre thème ? J’ai parcouru le manuel des développeurs, mais je ne trouve aucune suggestion sur l’endroit où il est généralement logique de stocker vos extensions de classe de widgets ?

Solution n°1 trouvée

Littéralement, vous pouvez placer le code du widget n’importe où dans vos fichiers de thème (à l’exception des fichiers de modèle) et les inclure à partir du functions.phpfichier.

functions.php est le seul fichier que WordPress inclut lorsque votre thème est actif

Il n’y a pas de meilleure pratique où vous les mettez, mais cela ne signifie pas que vous devriez gâcher les choses. Il est préférable de conserver chacun de vos codes de widget dans un fichier séparé.


Pour garder les choses organisées, vous pouvez placer chacun de vos fichiers de widget dans l’un des dossiers suivants de votre thème :

  • /includes/
  • /widgets/
  • /includes/widgets/

Nommer le fichier widget :

Vous ne pouvez enregistrer un widget personnalisé qu’en étendant WP_Widgetla classe. Cela indique que vous devez écrire une classe pour chaque widget. Compte tenu de cela, vos fichiers de widget doivent être nommés avec un préfixe de classe. Comme : class-widget-one.phpun fichier PHP préfixé par une classe indique que ce fichier ne contient qu’une seule classe.


Enregistrement de widget :

Il est préférable d’enregistrer tous vos widgets à partir de functions.php. Cela permet de comprendre facilement combien de widgets personnalisés vos fournisseurs de thèmes et où ils se trouvent.

function wpse366458_register_widgets() {
    include( dirname( __FILE__ ) . '/widgets/class-widget-one.php' );
    register_widget( 'Theme_Widget_One' );

    include( dirname( __FILE__ ) . '/widgets/class-widget-two.php' );
    register_widget( 'Theme_Widget_Two' );
}
add_action( 'widgets_init', 'wpdocs_register_widgets' );

Réutiliser les codes sur plusieurs widgets :

Maintenant, cela dépend entièrement de vos besoins et de vos goûts. Tu peux –

  • utiliser la classe et les méthodes Trait seront disponibles dans votre classe de widgets actuelle. c’est-à-dire : get_page_choices().
  • utiliser la classe avec des méthodes statiques. c’est à dire:Prefix_Widget_Helper::get_page_choices()
  • utiliser les fonctions. c’est-à-dire : prefix_get_page_choices(),prefix_sanitize_something()
Catégories : Wordpress

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *