自分の「最近の投稿」ウィジェットを作成したり、既存のウィジェットをカスタマイズしたりできますか?


14

最近の投稿ウィジェットを有効にして、現在表示するように設定されているウィジェットよりも多くの投稿があるときに「すべて表示」リンクを表示できるようにします。

また、特定のカテゴリや投稿を除外したいのですが。

私のテーマのfunctions.php経由で行うことは可能ですか?

(1)既存のウィジェットをカスタマイズするか、(2)カスタマイズできるコピーを作成しますか?


1
さらに読むには、Widgets APIが役立つリソースです。
マナファイア

回答:


20

通常は、既存のものをコピーし、一意の名前を付けてから、独自の機能を追加するのが最善です。

WP_Widget_Recent_Postsクラスをwp-includes / class-wp-widget-recent-posts.phpからfunctions.php(または、できればウィジェット専用のテーマの別のファイル)にコピーし、別の名前に変更します。My_Widget_Recent_Posts

そこに機能を追加します。

フェーズのregister_widget('My_Widget_Recent_Posts')一部として呼び出すことも忘れないでくださいinit


+1 Sweet。わかりました。それを、functions.phpの「require_once()」で「インクルード」している特別なカスタムウィジェットファイルに追加しました。ただし、クラス名は変更しましたが、デフォルトの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
マナファイア
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.