我列出了基于类别的相关页面。这是我用来列出所有相关类别的工具。我要做的是隐藏整个block如果它没有返回任何类别。我不确定如何使用foreach。
<h3>Related Category</h3>
<ul>
<?php foreach((get_the_category()) as $catCS) {
if($catCS->parent == 4){ ?>
<li><a href="<?php echo get_permalink(46); ?><?php echo $catCS->slug; ?>"><?php echo $catCS->cat_name; ?></a></li>
<?php }
} ?>
</ul>
不确定你是否知道,但是WordPress有一个获取父类别get_category_parents
的命令,所以如果你使用它,你可以这样使用:
<?php
$result = get_category_parents($cat, true, '</li><li>');
$result = substr($result, 0, -4);
if(!is_wp_error($result))
{
?>
<h3>Related Category</h3>
<ul>
<li><?php echo $result; ?>
</ul>
<?php
}
?>
注意:substr
是一个小hack,以删除最后一个空的<li>
开放,由于我如何使用</li><li>
作为分隔符。
这是未经测试的,但您可以将当前数组过滤到结果数组中,并测试其是否为空。
<?php
# save the result
$categories = array();
# fill $categories if any match
foreach ((get_the_category()) as $cat)
{
if($cat->parent == 4)
{
$categories[] = $cat;
}
}
# print nothing if $categories is empty
if (!empty($categories))
{
?>
<h3>Related Category</h3>
<ul>
<?php
foreach($categories as $catCS)
{
?>
<li><a href="<?php echo get_permalink(46); ?><?php echo $catCS->slug; ?>"><?php echo $catCS->cat_name; ?></a></li>
<?php
}
?>
</ul>
<?php
}
?>
可能有更好的方法,但这应该可以。