Czy mogę utworzyć własny widżet „Najnowsze posty” lub dostosować istniejący?


14

Chciałbym włączyć widżet Ostatnie posty z możliwością pokazywania linku „Wyświetl wszystko”, gdy jest więcej postów, niż widżet ustawiony do wyświetlenia.

Chciałbym również móc wykluczyć z niej określone kategorie lub posty.

Czy można to zrobić za pomocą funkcji funkcji mojego motywu. Php?

(1) Dostosuj istniejący widget lub (2) Stwórz jego kopię, którą mogę dostosować?


1
Do dalszego czytania interfejs API Widgets jest pomocnym źródłem.
manafire

Odpowiedzi:


20

Zwykle najlepiej jest skopiować istniejący, nazwać go czymś wyjątkowym, a następnie dodać własną funkcjonalność.

Skopiuj WP_Widget_Recent_Postsklasę z wp-include / class-wp-widget-latest-posts.php do swojego functions.php (lub, najlepiej, innego pliku w kompozycji poświęconego tylko widżetom) i zmień nazwę na coś innego, na przykładMy_Widget_Recent_Posts

Dodaj tam swoją funkcjonalność.

Nie zapomnij również zadzwonić register_widget('My_Widget_Recent_Posts')w ramach tej initfazy.


+1 Słodki. Ok, dodałem go do specjalnego pliku niestandardowych widżetów, który mam „dołączony” przez „wymagany_once ()” w moim functions.php. Jednak chociaż zmieniłem nazwę klasy, wydaje się, że przejmuje domyślny widżet WP Ostatnie posty. Jakieś pomysły?
N2Mystic

2
Musisz przypisać unikalną nazwę widżetowi. parent::__construct('recent-posts', __('Recent Posts'), $widget_ops); 'recent-posts'należy zmienić na coś podobnego 'my-recent-posts', a także należy zmienić etykietę na coś, dzięki czemu widget można zidentyfikować jako swój:'My Recent Posts'
Bendoh

3
Init mój widżet musiałem dodać add_action( 'widgets_init', create_function( '', 'register_widget( "My_Widget_Recent_Posts" );' ) );do functions.php.
manafire
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.