如何在主页上显示带有特定类别的新帖子?

时间:2013-03-21 作者:Olivier Pons

我读过thisthis 但我只是一个基本用户。

我有一个越来越多的人访问的“技术”博客。

我是一名自由职业者,现在,当有人听到我的消息时,他/她想搜索我,而我的博客是#1(在其他任何事情之前)。

问题是它以前是一个个人博客,现在变成了专业博客。所以我仍然想发表一些文章,但如果有一些特定的标签(如“游戏”、“家庭”等),我会喜欢它们not 显示在主页面上,但仅显示在类别筛选器下(http://myblog/?s=game, http://myblog/?s=family 可以,但不行http://myblog/).

如何做到这一点?

3 个回复
最合适的回答,由SO网友:Dehalion 整理而成

WordPress codex中甚至有这样一个例子:http://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts

function exclude_category( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {
        $query->set( \'cat\', \'-3,-8\' );
    }
}
add_action( \'pre_get_posts\', \'exclude_category\' );
只需修改类别ID(用前面带有减号的类别ID替换-3、-8)并将其放入函数中即可。php或您的插件代码。

WordPress codex声明如下:

query_posts() 是更改默认查询的最简单但不是首选或最有效的方法。首选的方式是pre_get_posts 以及更改主查询。

这样,您只需更改主查询,而不是丢弃第一个查询的结果并运行第二个查询。

SO网友:Marc Dingena

这是基本的The Loop 操纵可以编辑循环以排除指定的类别。例如,您将仅在中使用此修改的循环index.php, 因此,在首页上,它会排除这些类别,但它们会显示在所有其他模板页面上。

有关使用的详细信息The Loop 要排除类别,请签出this WordPress Codex article.

大体上

query_posts($query_string . \'&cat=-3,-8\');
在哪里-3 表示“排除类别”ID 3“。

要找出类别的ID,请在WP Admin中导航到类别列表,将鼠标悬停在类别标题上,它所指向的URL中是一个参数ID.

SO网友:MidhuN

如果您使用的是模板,则可以使用以下代码

<?php
/*
Template Name: Template name
  */
?>
<?php 
    get_header();
    $recent = new WP_Query("cat=-6");// Excludes the category with id=6  
    while($recent->have_posts()):$recent->the_post();
    the_title() 
    the_content();  
    endwhile;
    get_footer();
?>
请参见wp_query 了解更多信息。

结束

相关推荐

如何在不同的url上显示主页,比如site.com/blog而不是site.com?

我已经在我的根目录中安装了Wordpress,所以如果您访问该站点。com你可以看到最近的帖子列表。我想做的是让主页显示一个静态页面,而不是显示最近的新闻等(我已经想出了如何做到这一点),但是如果有人访问该网站。com/blog/,我想显示最近帖子的列表,显示方式与当前主页上的显示方式相同。我可以这样做吗?如果可以,怎么做?P、 S另一个url不必称为/blog/,它可以是任何内容,例如site。com/最近/或网站。com/存档/也可以。谢谢