温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

wordpress 不同分类下的文章使用不同模版

发布时间:2020-06-20 03:07:33 来源:网络 阅读:1048 作者:csboyty 栏目:web开发

1、根据模板文件名进行判断
a、将下面的代码添加到当前主题的 functions.php 文件
/**

  • 不同分类使用不同的文章模板

  • From http://www.wpdaxue.com/custom...

*/
//定义模板文件所在目录为 single 文件夹
define(SINGLE_PATH, TEMPLATEPATH . '/single');
//自动选择模板的函数

function wpdaxue_single_template($single) {    global $wp_query, $post;    //通过分类别名或ID选择模板文件
    foreach((array)get_the_category() as $cat) :        if(file_exists(SINGLE_PATH . '/single-cat-' . $cat->slug . '.php'))            return SINGLE_PATH . '/single-cat-' . $cat->slug . '.php';        elseif(file_exists(SINGLE_PATH . '/single-cat-' . $cat->term_id . '.php'))            return SINGLE_PATH . '/single-cat-' . $cat->term_id . '.php';    endforeach;
}

//通过 single_template 钩子挂载函数
add_filter('single_template', 'wpdaxue_single_template');
b、在当前主题的根目录创建一个名为 single 的文件夹,然后根据不同分类创建不同的文件,命名格式为 single-cat-[分类别名或ID].php。请记得为所有分类创建自己的模板文件。

2、使用 in_category() 进行判断
in_category() 函数可以通过分类别名或ID判断当前文章所属的分类,而且可以直接在循环(Loop)内部和外部使用。

如果是单个分类 ID ,比如ID 为 2 ,可以这样写

in_category(2)
如果是单个分类别名,比如别名为 themes,可以这样写

in_category('themes')
如果是多个ID,可以这样写

in_category( array( 2,3,7) )
如果是多个别名,可以这样写

in_category( array( 'themes','plugins','develop') )
们可以在主题的根目录创建3个文章模板文件,分别命名为 single001.php , single002.php 和 single003.php,然后我们希望 ID 为 2 和 3 的分类使用 single001.php,ID为 7 的分类使用 single002.php ,其他分类使用 single003.php

<?php if ( in_category(array( 2,3 )) ) {
    get_template_part('single001' );
} elseif ( in_category( 7 )) {
    get_template_part('single002' );
} else {
    get_template_part('single003' );
}?>


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI