我有一个WordPress网站,有5个主要的父类别,每个类别有几十个子类别
对于单个WordPress帖子。php,我想根据帖子所属的每个子类别slug加载一些内容。
i、 e.如果在“信件>ABC”类别中,请获取\\u template\\u part ABC。php
i、 e.如果在“字母>ABC”和“数字>123”类别中,请获取\\u template\\u part ABC。php和123。php等
目前,我正在以一种漫长而低效的方式:
<?php if (in_category( \'xxx\' )) : get_template_part( \'templates\', \'xxx\' ); endif;?>
<?php if (in_category( \'zzz\' )) : get_template_part( \'templates\', \'zzz\' ); endif;?>
但很明显,这对于大量的类别来说是不现实的,因为我将有大约500个类别排在一起,我认为这将大大降低网站的速度。
理想情况下,我希望使用以下内容:
<?php foreach ((get_the_category()) as $childcat) {
if (cat_is_ancestor_of(165, $childcat)) {
get_template_part( \'templates\', \'$childcat->slug\' );
}
?>
我想知道上面的代码哪里出了问题?我的PHP不是很好-提前感谢您提供的任何帮助。
乔伊
编辑:由于Birgire(如下所示),工作代码为:
<?php foreach ((get_the_category()) as $childcat) {
if (cat_is_ancestor_of(165, $childcat)) {
get_template_part( \'templates\', $childcat->slug );
} }
?>
并将165更改为父类别ID是什么。
这将加载名为templates xxx的模板。php,其中xxx是子类别slug名称。