Чи можу я створити власний віджет "Останні повідомлення" або налаштувати існуючий?


14

Я б хотів увімкнути віджет Останні публікації із можливістю показу посилання "Переглянути всі", коли повідомлень більше, ніж у мене зараз встановлено віджет.

Я також хотів би мати можливість виключити з нього певні категорії чи публікації.

Чи можна це зробити через мою тему function.php?

(1) Налаштувати існуючий віджет або (2) Створити його копію, яку я можу налаштувати?


1
Для подальшого читання API віджетів є корисним ресурсом.
manafire

Відповіді:


20

Зазвичай найкраще скопіювати існуючий, назвати його чимось унікальним, а потім додати власну функціональність.

Скопіюйте WP_Widget_Recent_Postsклас із wp-include / class-wp-widget-recent-posts.php у свої функції.php (або, бажано, інший файл у вашій темі, присвячений саме віджетам) та перейменуйте на щось інше, наприкладMy_Widget_Recent_Posts

Додайте туди свою функціональність.

Не забудьте також зателефонувати register_widget('My_Widget_Recent_Posts')як частина initфази.


+1 Солодке. Гаразд, я додав його до спеціального спеціального файлу віджетів, який у мене є "включеним" через "Requ_once ()" в мої функції.php. Однак, хоча я змінив ім'я класу, схоже, він переймає віджет WP Recent Posts за замовчуванням. Будь-які ідеї?
N2Mystic

2
Ви повинні призначити віджету унікальне ім’я. parent::__construct('recent-posts', __('Recent Posts'), $widget_ops); 'recent-posts'слід змінити щось на кшталт 'my-recent-posts', а також слід змінити етикетку на те, що робить віджет ідентифікованим як ваш:'My Recent Posts'
Bendoh

3
Щоб форматувати мій віджет я повинен був додати add_action( 'widgets_init', create_function( '', 'register_widget( "My_Widget_Recent_Posts" );' ) );до functions.php.
manafire
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.