Press "Enter" to skip to content

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

根据模板文件名进行判断

1、将下面的代码添加到当前主题的 functions.php 文件:

/**
* 不同分类使用不同的文章模板
*/
//定义模板文件所在目录为 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';
        }elseif(file_exists(SINGLE_PATH . '/single.php')){
            return SINGLE_PATH . '/single.php';
        }
	endforeach;
}
//通过 single_template 钩子挂载函数
add_filter('single_template', 'wpdaxue_single_template');

2、在当前主题的根目录创建一个名为 single 的文件夹,然后根据不同分类创建不同的文件,命名格式为 single-cat-[分类别名或ID].php。请记得为所有分类创建自己的模板文件。

例如我博客的”WordPress主题“这个分类的别名为”themes“,ID 为 2,那就可以命名为 single-cat-themes.php 或 single-cat-2.php 。这样,只要是WordPress主题这个分类,就会自动选择 single-cat-themes.php 或 single-cat-2.php 作为这个分类的文章模板。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注