Puis-je créer mon propre widget «Articles récents» ou personnaliser celui existant?

14

J'aimerais activer le widget Messages récents avec la possibilité d'afficher un lien "Afficher tout" lorsqu'il y a plus de messages que je n'ai actuellement le widget à afficher.

J'aimerais également pouvoir en exclure certaines catégories ou publications.

Est-il possible de le faire via le fichier functions.php de mon thème?

(1) Personnaliser le widget existant ou (2) Créer une copie de celui-ci que je peux personnaliser?

N2Mystic
la source
1
Pour de plus amples informations, l' API Widgets est une ressource utile.
manafire

Réponses:

20

Il est généralement préférable de copier celui existant, de le nommer quelque chose d'unique, puis d'ajouter votre propre fonctionnalité.

Copiez la WP_Widget_Recent_Postsclasse de wp-includes / class-wp-widget-recent-posts.php dans votre functions.php (ou, de préférence, un autre fichier de votre thème consacré uniquement aux widgets) et renommez-le en quelque chose d'autre, commeMy_Widget_Recent_Posts

Ajoutez-y vos fonctionnalités.

N'oubliez pas d'appeler également register_widget('My_Widget_Recent_Posts')dans le cadre de la initphase.

Bendoh
la source
+1 Doux. Ok, je l'ai ajouté à un fichier spécial de widgets personnalisés que j'ai "inclus" via "require_once ()" dans mon functions.php. Cependant, bien que j'aie changé le nom de classe, il semble prendre le relais du widget WP Recent Posts par défaut. Des idées?
N2Mystic
2
Vous devez attribuer un nom unique au widget. parent::__construct('recent-posts', __('Recent Posts'), $widget_ops); 'recent-posts'devrait être changé en quelque chose comme 'my-recent-posts', et vous devriez également changer l'étiquette en quelque chose qui rend le widget identifiable comme étant le vôtre:'My Recent Posts'
Bendoh
3
Pour initialiser mon widget de je devais ajouter add_action( 'widgets_init', create_function( '', 'register_widget( "My_Widget_Recent_Posts" );' ) );à functions.php.
manafire