主循环外排除特定分类

在一些Wordpress主题中可能会有特殊需求,有的日志不能在首页index.php显示,但是又必须在其他地方显示,所以不能用私有日志方法。这个时候就要在循环中排除分类。

在文章调用主循环中:

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
//主循环内容
<?php endwhile; ?>
<?php endif; ?>

排除某个分类,要使用query_posts()函数:

<?php query_posts('cat=-1'); ?>

以上代码是排除分类ID为的文章,将其插入到主循环之前即可。

但是query_posts()函数会与分页功能冲突,需要分页的处理:

<?php
$limit = get_option('posts_per_page');
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts('cat=-1&showposts=' . $limit=10 . '&paged=' . $paged);
?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
//主循环内容
<?php endwhile; endif; ?>