我使用此代码在wordpress中自定义单个.php页面(按类别)它工作正常。
get_header(); ?>
<div id="container">
<div id="content" role="main">
<?php
$post = $wp_query->post;
if (in_category('4')) {
include(TEMPLATEPATH.'/loop-single-recept.php');
} elseif (in_category('7')) {
include(TEMPLATEPATH.'/loop-single.php');
} else {
include(TEMPLATEPATH.'/loop-single.php');
}
?>
</div><!-- #content -->
</div><!-- #container -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>
但我也想在每个页面中.php自定义侧边栏。
您可以创建多个侧边栏文件,然后使用 <?php get_sidebar() ?>
中的(通常为空)参数调用它们
例如,您创建一个替代侧边栏并将其称为侧边栏替代.php然后使用 <?php get_sidebar('alternative'); ?>
调用它
所以你的代码可能是;
<?php
if (in_category('4')) {
get_sidebar();
} elseif (in_category('7')) {
get_sidebar('alternative');
} else {
get_sidebar('alternative');
}
?>
顺便说一句,我不是在做一个问题,但你应该考虑接受你的一些答案,因为它会让人们不回答 - 堆栈溢出答案
有时 in_category() 似乎不起作用,我喜欢从 $wp_query 变量中获取类别名称并包含我自己的文件:
if($wp_query->query['category_name'] == 'your-category-name-1') {
include_once('sidebar-one.php');
} else if($wp_query->query['category_name'] == 'your-category-name-2') {
include_once('sidebar-two.php');
} else {
include_once('sidebar-three.php');
}