您可以使用此功能在网站上添加特定于类别的单模板页面。这个进去了functions.php
您可以根据需要定义任意多个单个模板。
function wpse_category_single_template( $single_template ) {
global $post;
$all_cats = get_the_category();
if ( $all_cats[0]->cat_ID == \'1\' ) {
if ( file_exists(get_template_directory() . "/single-cat1.php") ) return get_template_directory() . "/single-cat1.php";
} elseif ( $all_cats[0]->cat_ID == \'2\' ) {
if ( file_exists(get_template_directory() . "/single-cat2.php") ) return get_template_directory() . "/single-cat2.php";
}
return $single_template;
}
add_filter( \'single_template\', \'wpse_category_single_template\' );
这里我用过
single-cat1.php
对于类别id 1和
single-cat2.php
对于类别id 2。您可以根据自己的感觉为这些模板命名。
此函数还使用默认回退single.php
如果没有single-cat1.php
或single-cat2.php
存在。
EDIT 1
我已经在我的两个网站上使用了上述代码,它在最新版本的WordPress上运行良好。
将此粘贴到functions.php
function show_template() {
global $template;
print_r($template);
}
add_action( \'wp_head\', \'show_template\' );
这将打印每页/帖子上使用的模板文件。现在访问您的网站,查看是否使用了正确的模板文件?如果它还在显示
single.php
那么你的代码就有问题了。
EDIT 2
这是您的代码。
function wpse_category_single_template( $single_template ) {
global $post;
$all_cats = get_the_category();
if ( in_category(6) ) {
if ( file_exists(get_template_directory() . "/page-custom.php") ) {
return get_template_directory() . "/page-custom.php";
} else {
return get_template_directory() . "/page.php";
}
}
return $single_template;
}
add_filter( \'single_template\', \'wpse_category_single_template\' );