ウイジェットを「有効化」すると、サイドバー表示が設定されている、すべての投稿ページ・固定ページ・投稿の個別ページなどに、そのウイジェットが出力されます。
しかし、ある特定のページには、そのウイジェットを出力させたくない場合があります。
例えば、ブログページ(投稿を一覧で表示するページ)のサイバー内に、改めて「最新の投稿」を一覧表示させたくないものです。
対策として、新たなウイジェットを作成する、といった方法があります。
しかし、ここでは、もっとも簡単な方法でカスタマイズ(ブログページでは「最新の投稿」の一覧を非表示)します。
投稿一覧ページのサイドバー内に「最近の投稿」を表示させない方法
下をそのまま functions.phpp 内に記述してください。
/*
* no recent posts widget on blog page
*/
add_filter('widget_posts_args','my_widget_posts_args');
function my_widget_posts_args($params){
if ( is_home()){
$params['year']=2010;
}
return $params;
}
ページが home の時、2010 年に投稿した記事のみ出力しなさいという設定。
つまり、当サイト開始は、2015年ですので、投稿一覧ページには「最近の投稿」が表示されない設定となっています。
もしも、サイトが、それ以前から運用されているのであれば、この数字をもっと古い数字に変更してください。
参考情報・ご注意事項
- widget_posts_args にフィルターフックしています。
- widget_posts_args は、wp-includes-> widgets -> class-wp-widget-recent-posts.php 内にあります。
- 条件分岐タグ is_home を利用していますが、サイトの設定条件次第で、正しく機能しない場合があります。WordPress Codex 日本語版の「条件分岐タグ」を参考にしながら設定をお願いします。
- 当記事内容は深く検証していません。使用方法によっては不具合が発生する場合がありますので、ご自身の責任においてご利用ください。