如何在博客列表页面上列出某些类别的帖子(只有一个类别可以说cat id = 5)?

时间:2017-07-25 11:20:17

标签: wordpress post hook

我只需要在博客列表页面上列出某些类别的帖子,让我们说类别ID 5.我需要它来自插件或function.php文件。我不想更改模板文件,我认为博客列表在index.php上。

我使用了parse_query钩子,如下所示。但是也影响到其他地方。菜单栏消失了。请帮我。谢谢。

 add_filter( 'parse_query', 'pp_posts_filter' );

  function pp_posts_filter( $query ){

    $query->query_vars['cat'] = 5;
  }

1 个答案:

答案 0 :(得分:1)

使查询更改仅针对主查询而不是辅助菜单(如菜单或边栏等)。使用is_main_query函数,即

 add_action( 'pre_get_posts', 'foo_modify_query_exclude_category' );
function foo_modify_query_exclude_category( $query ) {
    if ( ! is_admin() && $query->is_main_query() && ! $query->get( 'cat' ) )
        $query->set( 'cat', '-5' );
}