Si vous avez déjà créé des widgets personnalisés dans un thème ou plugin WordPress, vous devez savoir que le formulaire d’édition des réglages du widget occupe toute la colonne parente représentant la sidebar. Mais saviez-vous qu’un réglage lors de la définition du widget vous permet de modifier la largeur de ce formulaire ?
Un petit paramètre pour de grands résultats !
Si vous ne visualisez pas ce dont je parle, il vous suffit d’insérer le widget natif WordPress Texte dans une sidebar. Une fois les réglages de ce widget ouverts, vous remarquerez que le formulaire est bien plus large que les blocs de réglages des autres widgets… et le plus important : cette largeur est personnalisable !
En fait, je n’ai pas trouvé aucune référence à ce réglage dans le codex WordPress. Mais en fouillant dans le code du core WordPress, j’ai découvert dans le fichier wp-includes/widgets.php que l’array $control_args passée en 4ème paramètre lors de la construction de la sous-classe de notre widget peut définir la largeur du formulaire du widget. L’exemple concret ressemble à ça…
class My_New_Widget extends WP_Widget {
function __construct() {
$widget_args = array('classname' => 'my_new_widget', 'description' => 'Description de mon widget');
$control_args = array(
'width' => 450
);
parent::__construct(
'my_widget_id',
'Titre de mon widget',
$widget_args,
$control_args
);
}
...
}
register_widget('My_New_Widget');
Le code important est la valeur width dans l’array $control_args qui va donc magiquement augmenter la largeur du bloc de réglages de votre widget dans l’administration WordPress. Un paramètre bon à connaître si les options de votre widget sont nombreuses et occupent de la place : vous pouvez désormais modifier la largeur de ce groupe d’options.
Enfin, notez que la valeur par défaut de la largeur est de 250 pixels. Avec cette width par défaut, le formulaire occupera la largeur exacte de la sidebar parente.
Un petit détail qui peut s’avérer pratique !
4 commentaires
Hello
Ce qui pourrait être bien aussi c’est de montrer comment je fais pour élargir un widget déjà existant, car si son auteur ne l’a pas fait, comment le refaire ?
Merci !
Hélas si tu regardes le code source du widget natif « Texte », aucun filtre n’est utilisé pour modifier $control_ops ($control_args dans mon tuto) de l’extérieur.
Dans ce cas j’opterai pour « dé-enregistrer » le widget en question avec unregister_widget (http://codex.wordpress.org/Function_Reference/unregister_widget), dupliquer son code en insérant le paramètre width.
C’est sale, mais si aucun hook n’a été ajouté dans le code du widget, je ne vois pas d’autre solution…
Par auteur
[…] Les formulaires d'édition d'un widget WordPress ont une largeur initiale de 250px. Découvrez comment modifier cette largeur très simplement ! […]
[…] Les formulaires d'édition d'un widget WordPress ont une largeur initiale de 250px. Découvrez comment modifier cette largeur très simplement ! […]