假设分类别名是test
首先,新建一个single-test.php。
然后将以下代码放进function.php里面
function test_single_template($template)
{
//$template必须存在 在当前文章不属于test分类时需要加载原single模板
/* 创建一个变量 等下需要用 */
$new_template = '';
if (is_single()) {
//同样也可以使用 in_page()等判断条件
global $post;
if (has_term('test', 'category', $post)) {
// 判断当前文章所属分类是否是test
$new_template = locate_template(array('single-test.php'));
// locate_template() 判断模版文件是否存在,存在则返回模版路径
// locate_template( $template_names, $load, $require_once )
// $template_names:(array)(必需)以优先顺序搜索的模板文件数组。(需要文件扩展名。)
// 默认值:无
// $load:(boolean)(可选)如果为true,则会发现模板文件被加载。
// 默认值:false
// $require_once:(boolean)(可选)如果为true,模板文件将加载php require_once函数。如果为false,模板文件将加载php require功能。如果$ load为false,则此参数不起作用。
// 默认值:true
}
}
return ('' != $new_template) ? $new_template : $template;
/* 三元运算符
* (条件) ? 表达式1 : 表达式2
* 逻辑:条件如果成立则执行表达式1,不成立则执行表达式2
*/
}
add_action('template_include', 'test_single_template');
/* template_include(WordPress钩子)——替换指定别名页面的模板 */
评论区
发表新的留言
您可以留言提出您的疑问或建议。
您的留言得到回复时,会通过您填写的邮箱提醒您。