我的档案有个小问题。php。我试图设置一个If语句,以不同的布局显示特定类别和子类别&;基于我的主题选项的提要栏。我在归档文件的开头放了一小段代码。php,以便根据帖子是否属于“nytt”类别或是nytt的子类别(ID 49)来设置这些选项。它就像一个符咒,如果类别列表在NYTT的一部分或子cat中,但现在,所有其他类别都不显示,页面将不会加载超过标题的内容。我一辈子都不明白为什么。我盯着这个密码,好像它掌握着一个不会放弃的秘密。。
<?php
get_header();
$subtitle=get_opt("_posts_subtitle");
$slider=\'none\';
if ( in_category( \'nytt\' ) || post_is_in_descendant_category( 49 ) ) {
$layout=\'left\';
$sidebar =\'teacher-training\';
}
else {
$layout = get_opt(\'_blog_layout\');
$sidebar = get_opt(\'_blog_sidebar\');
}
include(TEMPLATEPATH . \'/includes/page-header.php\');
?>
<div id="content-container" class="content-gradient <?php echo $layoutclass; ?> ">
<div id="<?php echo $content_id; ?>"><?php
if(have_posts()){
while(have_posts()){
the_post();
global $more;
$more = 0;
include(TEMPLATEPATH . \'/includes/post-template.php\');
}
print_pagination();
}else{
echo (\'No posts available\');
}
?>
</div>
<?php
if($layout!=\'full\'){
print_sidebar($sidebar);
}
?>
<div class="clear"></div>
</div>
<?php
get_footer();
?>
我也知道我可以使用这个类别。php也可以实现这一点,但我的主题是使用归档。php默认情况下,我决定改用它。我已经声明了[post\\u is\\u in\\u descendant\\u类别](
http://codex.wordpress.org/Function_Reference/in_category#Testing_if_a_post_is_in_a_descendant_category)! 函数在我的孩子主题函数中。php。
任何帮助都将不胜感激。感谢您的时间和专业知识!
最合适的回答,由SO网友:vancoder 整理而成
首先,您是否在wp config中将DEBUG设置为TRUE?如果加载的距离不超过页眉,则可能意味着没有显示错误。将其设置为True以查看错误。
其次,您正在存档页面上使用for in\\u分类,我相信这只适用于页面上的第一篇文章。但这对你的情况可能没有什么影响。
第三,我根本不会为此使用默认存档。我会专门为这个类别创建一个模板:类别nytt。php(参见template hierarchy). 这将使您可以处理所有in_category
/post_is_in_descendant_category
gubbins,并保留默认存档。php(一旦恢复)将以标准方式为标准帖子工作。
编辑:
查看答案here 要使子类别使用其父类别的模板。