Home » wordpress » Créer un widget pour afficher des horaires
Créer un widget pour afficher des horaires
Aujourd’hui on va voir comment créer un widget dans un site wordpress pour afficher des horaires.
L’idée est de permettre à l’utilisateur de pouvoir modifier les horaires à sa guise, le code pourra bien sur etre modifié selon les besoins et l’apparence finale dépendra du css appliqué.Voici un exemple de rendu final:
Le code peut être largement amélioré ou factorisé, l’idée ici étant de revoir la base de la création d’un widget :
La classe du widget
On commence tout d’abord par créer notre classe widget, qui hérite de la classe globale WP_Widget
class Horaires extends WP_Widget {
tout le code ici
}
Le constructeur du widget
A l’intérieur de la classe on va commencer par y mettre le constructeur : on définit ici un id pour le widget, un nom et sa description.
//Constructeur function Horaires() { parent::WP_Widget(false, $name = 'Horaires', array('name' => 'Horaires', 'description' => 'Affichage des horaires')); }
le widget coté front end
A la suite on code notre function pour le front end : ici pas de boucle, je détaille au maximum.On crée un titre, puis des inputs pour chaque jour de la semaine, puis un petit lien pour rediriger vers une page annexe.Ici le lien est mis en dur mais on pourrait tout à fait le rendre customisable, ou imaginer autre chose à la place.
function widget($args, $instance) {
//Récupération des paramètres extract($args); $title = apply_filters('widget_title', $instance['title']);
Ensuite même chose pour le backend, on crée notre formulaire en récupérant les variables créees.Les jours de la semaine sont mis en dur mais on pourrait tout à fait imaginer d’autres données à la place, et on pourrait créer autant de nouvelles variables pour les rendre elles aussi customisables.
Voila, on peut refermer notre classe.A la suite, on ajoute enfin la fonction register pour enregistrer notre widget.
function register_white_bear_horaires_widget() { register_widget( 'Horaires' ); } add_action('widgets_init', 'register_horaires_widget');
En backoffice, l’utilisateur pourra donc dans l’onglet Apparence/Widget retrouver un « widget horaires » tout simple qui lui permettra d’afficher ses horaires dans sa sidebar par exemple, ou son footer