我有一个自定义的帖子类型“downloads”,在下载菜单中,我有下载类别,分类名称是“downloadcats”。
我的下载页面使用一个页面模板,列出“downloadcats”分类法中的所有类别,这只显示父类别。单击一个类别时,它使用分类法归档模板(taxonomy downloadcats.php),我尝试使用条件来说明是否有子类别,显示列表,否则显示帖子列表。
在我的分类法中下载猫。php目前我有以下几点:
<?php
$term = get_queried_object();
$children = get_terms( $term->taxonomy, array(
\'parent\' => $term->term_id,
\'hide_empty\' => false
) );
// print_r($children); // uncomment to examine for debugging
if($children) { // get_terms will return false if tax does not exist or term wasn\'t found.
echo \'show child categories\';
} else {
if (have_posts()) :
while (have_posts()) : the_post(); ?>
<li><?php the_post_thumbnail(\'post-image\'); ?>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
<?php endif; ?>
<?php } ?>
条件语句是正确的,因为如果类别没有子类别,它会显示帖子,如果有子类别,它会显示“show child categories”,我需要知道其中的内容是什么,以使父类别的子类别出现。
谢谢
最合适的回答,由SO网友:Pieter Goosen 整理而成
你离这里太近了,几乎可以闻到它的味道。以下是如何完成代码:
您已经将所有子项存储在一个名为$children
. 要显示这些,只需foreach
环像这样的事情就行了。(您可以在此基础上进行扩展,只需执行var_dump
或print_r
获取可使用的可用对象)
foreach ( $children as $child ) {
echo $child->name; //very basic, display term name
}
如果您需要获得该术语的链接,请使用
get_term_link
SO网友:Adrian
再次感谢Pieter,已经为此工作了两天。。。为将来可能需要它的任何其他人提供的完整代码:
<?php
$term = get_queried_object();
$children = get_terms( $term->taxonomy, array(
\'parent\' => $term->term_id,
\'hide_empty\' => false
) );
// print_r($children); // uncomment to examine for debugging
if($children) { // get_terms will return false if tax does not exist or term wasn\'t found.
foreach ( $children as $child ) {
$imgurl = z_taxonomy_image_url($category->term_id);
echo \'<li><img src="\'. $imgurl . \'"/><a href="\' . esc_attr(get_term_link($child, \'downloadcats\')) . \'" rel="bookmark">\' . $child->name . \'\' . \'\' . $child->description . \'</a></li>\';
}
} else {
if (have_posts()) :
while (have_posts()) : the_post(); ?>
<li><?php the_post_thumbnail(\'post-image\'); ?>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
<?php endif; ?>
<?php } ?>