Products
GG网络技术分享 2025-03-18 16:12 0
作者:悦然wordpress建站(悦然建站)
继续分享wordpress建站教程。如果你使用的是某些资讯类的wordpress建站主题,那么网站的首页默认会显示所有的分类的文章内容,一般情况下这没有问题,可如果你有某些分类不想让它在首页显示应该怎么办呢?
此时我们就不得不对wordpress建站使用的主题模板进行一下修改了。修改方法有多种,有修改index.php文件的方法,还有修改主题模板的functions.php文件的方法。这里悦然网络工作室推荐后者,下面分享方法。
打开当前wordpress主题的functions.php文件,在开头或结尾添加如下代码:
//在首页中排除指定分类
(由悦然wordpress建站收集整理)
function exclude_category_home( $query ) {
if ( $query->is_home ) {
$query->set( 'cat', '-3, -6' ); //你要排除的分类ID
,修改对应的数字
}
return $query;
}
add_filter( 'pre_get_posts', 'exclude_category_home' );添加之后保存,然后刷新浏览器即可生效。至此修改就已经成功了。
悦然网络工作室前些前给大家分享过一款可以替代functions.php文件的插件——Code Snippets,使用这款插件就不要再云编辑functions.php了。如果你对functions.php文件的修改比较多,那么使用它会非常方便。
具体使用方法可以参考下面这篇文章。
今天的wordpress建站教程就分享到这里了,一般情况下如非必要大家还是尽量不要修改wordpress主题和functions.php文件哦,对新手来说可能使用第二种插件的方法会更好,也更方便。
WordPress默认的一级分类会把二级分类的文章都调用出来,有时候我们并不需要把二级分类的文章显示在首页。
我们可以用下面的方法来解决这个问题。
默认的分类模板输出文章的代码如下:
<?phpif(have_posts()):?><?phpwhile(have_posts()):the_post();?>
<?phpendwhile;?>
<?phpendif;?>
这段代码会输出分类下所有的文章,但如果要实现一级分类(父分类)不调用二级分类(子分类)的文章就需要对这段代码进行一个判断,需要将上面的代码替换成下面的代码:
<?php//如果没有category模版,而是使用archive模版,需要加上判断
if(is_category()){
//得到分类标题但不echo
$cat_title=single_cat_title("",false);
//把标题转成ID
$cat_ID=get_cat_ID($cat_title);
//获取子分类ID
$subcategories=get_categories(array('type'=>'post','child_of'=>$cat_ID));
//循环拼成字符串,子分类前面加上"-"负号
foreach($subcategoriesas$i=>$value){
$excluded_cats.=",-".$value->cat_ID;
}
//排除子分类ID
if(!empty($excluded_cats)){
$MainLoopArgs=array('cat'=>$cat_ID.$excluded_cats);
}
else{
$MainLoopArgs=array('cat'=>$cat_ID);
}
query_posts($MainLoopArgs);
}
?>
<?phpif(have_posts()):?>
<?phpwhile(have_posts()):the_post();?>
<?phpendwhile;?>
<?phpendif;?>
通过以上的判断语句,就可以实现一级分类就显示自己类别下的文章,而不去调用子分类下的文章了。这个代码可以帮助我们建网站时实现很多效果。
Demand feedback