Bisakah saya membuat widget "Kiriman Terbaru" sendiri atau menyesuaikan yang sudah ada?

14

Saya ingin mengaktifkan widget Posting baru-baru ini dengan kemampuan menampilkan tautan "Lihat Semua" ketika ada lebih banyak pos daripada yang saat ini saya siapkan untuk ditampilkan di widget.

Saya juga ingin mengecualikan kategori atau pos tertentu dari itu.

Apakah mungkin untuk melakukannya melalui functions.php tema saya?

(1) Kustomisasi widget yang ada atau (2) Buat salinannya yang bisa saya sesuaikan?

N2Mystic
sumber
1
Untuk bacaan lebih lanjut, API Widget adalah sumber yang bermanfaat.
manafire

Jawaban:

20

Biasanya yang terbaik adalah menyalin yang sudah ada, beri nama itu sesuatu yang unik, dan kemudian tambahkan fungsionalitas Anda sendiri.

Salin WP_Widget_Recent_Postskelas dari wp-include / class-wp-widget-latest-posts.php ke functions.php Anda (atau, lebih disukai, file lain dalam tema Anda yang ditujukan hanya untuk widget) dan ganti nama dengan yang lain, sepertiMy_Widget_Recent_Posts

Tambahkan fungsionalitas Anda di sana.

Jangan lupa untuk menelepon register_widget('My_Widget_Recent_Posts')sebagai bagian dari initfase juga.

Bendoh
sumber
+1 Manis. Oke, saya menambahkannya ke file widget khusus khusus yang saya miliki yang "disertakan" melalui "require_once ()" di functions.php saya. Namun, meskipun saya mengubah classname, tampaknya mengambil alih widget WP Recent Posts default. Ada ide?
N2Mystic
2
Anda harus menetapkan nama unik untuk widget. parent::__construct('recent-posts', __('Recent Posts'), $widget_ops); 'recent-posts'harus diubah menjadi sesuatu seperti 'my-recent-posts', dan Anda juga harus mengganti label menjadi sesuatu yang membuat widget dapat dikenali sebagai milik Anda:'My Recent Posts'
Bendoh
3
Untuk init widget saya saya harus menambahkan add_action( 'widgets_init', create_function( '', 'register_widget( "My_Widget_Recent_Posts" );' ) );untuk functions.php.
manafire