为某些类别维护单独的帖子页面,并且不在主页上显示这些帖子

时间:2012-05-03 作者:Roee Adler

我有一个个人博客,在那里我写一般的帖子。我决定很少发表关于其他话题(比如说猫)的帖子,这些话题的受众与我现在的受众非常不同。所以我有时想写一些关于猫的文章,但我希望那些猫的帖子不要出现在我主页的主帖子页面上。我想有一个单独的页面,在那里猫的帖子都会出现,我可以控制页面的URL(例如“site.com/cats”)。

我的一个想法是:

在主贴子页面上,用“猫”标签过滤掉所有猫的贴子,以及在我的主页上出现的“最近的贴子”中,以某种方式引用页面站点。我的问题是我找不到一个简单的方法来做(2)和(3)。有没有现成的方法来实现这一点?我的网站是here.

2 个回复
SO网友:Chris_O

最好的方法是添加一个cats类别,并使用pre\\u get\\u posts过滤器从主页中过滤掉这些类别。

function kill_kittens( $query ) {
    if ( $query->is_home ) {
        $query->set( \'cat\', \'-23\' ); //assumes the cats category id is 23
    }
}
add_action( \'pre_get_posts\', \'kill_kittens\' );
对于您的cats页面,您可以创建一个自定义类别存档模板,或者只创建一个自定义页面和一个简单模板,查询cats类别中的所有帖子。

<?php
/**
 * Template Name: kitties
 */

get_header(); ?>

<div id="kittens">
<?php $kitty_query = new WP_Query( \'cat\' => 23 ); //assuming again cat category id is 23

while ( $kitty_query->have_posts() ) : $kitty_query->the_post();

//do stuff

endwhile;

wp_reset_postdata(); ?>

</div>

<?php get_sidebar();
      get_footer();

SO网友:Jeremy Jared

要从内容中排除某个标记,可以在主题文件中循环之前使用该标记:

<?php
if (is_home()) {
  global $wp_query;
  $wp_query->set("tag__not_in", array(1));
  $wp_query->get_posts();
  }
?>
以上使用tag__not_in查询参数(view the codex page for options)您需要标签id(在WP Admin区域查看指定标签时,URL中可用:贴子/标签/猫)。

要使用is\\U home以外的其他功能,请查看此处以获取更多选项:http://codex.wordpress.org/Conditional_Tags

要仅显示带有cats标记的帖子,您可以使用:

<?php
  global $wp_query;
  $args = array(
  \'tag\' => \'cats\',
  \'order\'    => \'ASC\'
  );
  query_posts( $args );
    // The Loop
    while ( have_posts() ) : the_post(); 
    echo \'<li>\';    the_title(); 
    echo \'</li>\'; 
    endwhile;
wp_reset_query(); // Reset Query ?>
query\\u posts的codex页面提供了有关选项的良好信息,或者对上述代码中发生的情况进行了详细解释:http://codex.wordpress.org/Function_Reference/query_posts

有关重定向的问题,请访问:

站点。com/cats到“cats”的标签页,只显示带有“cats”标签的帖子

有几种方法可以解决这个问题。可以创建页面模板或条件语句来处理该选项。您可以创建页面模板,创建一个名为cats的新页面,并将新页面模板分配给cats页面。根据你的永久链接结构,它可以使用你网站的URL。通信/猫。只需放置上面显示的查询,以显示标记为cats的帖子的帖子标题。您需要调整实际的循环代码,以匹配所需的结果。

结束

相关推荐

NEXT_POST_LINK()中的EXCLUDE_CATEGORIES参数行为异常

我有一个Wordpress模板。php页面。该页面有“下一页”和“上一页”箭头,允许浏览所有帖子。我想将某些类别的帖子排除在“下一个”和“上一个”计算中。我有以下代码: // in single.php next_post_link( \'%link\', \'&larr; Previous\', false, \'11 and 13 and 15\'); 这应该会显示到下一篇文章的链接。第11、13和15类的职位不应按照the $ignore_categories para