Posso creare il mio widget "Messaggi recenti" o personalizzare quello esistente?


14

Vorrei abilitare il widget Post recenti con la possibilità di mostrare un link "Visualizza tutto" quando ci sono più post di quelli che ho attualmente impostato per mostrare il widget.

Mi piacerebbe anche poter escludere determinate categorie o post da esso.

È possibile farlo tramite le funzioni.php del mio tema?

(1) Personalizza il widget esistente o (2) Creane una copia che posso personalizzare?


1
Per ulteriori letture, l' API Widget è una risorsa utile.
manafire

Risposte:


20

Di solito è meglio copiare quello esistente, nominarlo qualcosa di unico e quindi aggiungere la tua funzionalità.

Copia la WP_Widget_Recent_Postsclasse da wp-Includes / class-wp-widget-recent-posts.php nel tuo func.php (o, preferibilmente, un altro file nel tuo tema dedicato solo ai widget) e rinominalo in qualcos'altro, comeMy_Widget_Recent_Posts

Aggiungi la tua funzionalità lì dentro.

Non dimenticare di chiamare anche register_widget('My_Widget_Recent_Posts')come parte della initfase.


+1 dolce. Ok, l'ho aggiunto a uno speciale file di widget personalizzati che ho "incluso" tramite "require_once ()" nel mio function.php. Tuttavia, sebbene abbia cambiato il nome della classe, sembra assumere il widget Post recenti di WP predefinito. Qualche idea?
N2Mystic,

2
È necessario assegnare un nome univoco al widget. parent::__construct('recent-posts', __('Recent Posts'), $widget_ops); 'recent-posts'dovrebbe essere cambiato in qualcosa del genere 'my-recent-posts', e dovresti anche cambiare l'etichetta in qualcosa che renda identificabile il tuo widget come tuo:'My Recent Posts'
Bendoh

3
Per init mia widget di ho dovuto aggiungere add_action( 'widgets_init', create_function( '', 'register_widget( "My_Widget_Recent_Posts" );' ) );a functions.php.
manafire
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.