有时候不想在wordpress首页显示特定的栏目,那么需要要怎么办,其实方法有很多,在之前写的送到wp_query类库中的时候也有写过要怎么样实现自定义循环。
正常情况下,我们使用的循环结构是这个样子的:
<?php
if(have_posts()):while(have_posts()):the_post();
//循环的内容
endwhile;
endif;
?>
使用我wp_query去自定义这个循环可以在这样写:
<?php
$loop = query_posts(‘post_type=post&cat=-2,-5,-13’);
if($loop->have_posts()):while($loop->have_posts()):the_post();
//循环的内容
endwhile;
endif;
?>
在这个例子中我们使用query_posts去自定义了这个循环,在这个循环中不显示栏目ID为2,5,13这三个栏目的内容。
但是如果你只是不想在首页里显示某个栏目下的内容,还有一个办法,就是把自定义循环代码放到主题文件的functions.php文件里,:
<?php
function excludeCat($query) {
if ( $query->is_home ) {
$query->set(‘cat’, ‘-2,-5,-13’);
}
return $query;
}
add_filter(‘pre_get_posts’, ‘excludeCat’);
?>
这方法是使用了一个过滤器,判断是首页之后,再对循环的内容进行过滤,排除了栏目ID为2,5,13的内容