如何在不是空的情况下显示类别

时间:2017-01-20 07:17:54

标签: php wordpress for-loop custom-post-type

我使用以下遗留代码来提取帖子类型GENRE并在wordpress网站模板文件上显示记录。

<?php
$genre_ids = get_posts('fields=ids&posts_per_page=-1&post_status=publish&post_type=genre&order=asc&orderby=title');
$choices = array(array('text' => 'Select Genre From List', 'value' => 0 ));
foreach ( $genre_ids as $genre_id ) {
    $categories[] = get_the_title( $genre_id );
}
if (!empty($categories)){
    foreach ($categories as $i=>$cat) {
        print "<li>";
        print "<a href='" . get_site_url() . "/band-search-page/?cat=$cat'>" . $cat . "</a>";
        print "</li>";
    }                       
} else {
    print "<li>";
    print "no categories";
    print "</li>";
}

脚本现在可以说是否有任何帖子类型GENRE然后运行查询。但我想编辑它以检查并仅在有GENRE时显示GENRE。现在,即使没有数据,查询也会显示所有类别。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:2)

请尝试此代码::

<?php

$genre_ids = get_posts('fields=ids&posts_per_page=-1&post_status=publish&post_type=genre&order=asc&orderby=title');
$choices = array(array('text' => 'Select Genre From List', 'value' => 0));
foreach ($genre_ids as $genre_id)
{
    $categories[] = get_the_title($genre_id);
}
if (!empty($categories))
{
    foreach ($categories as $i => $cat)
    {
        if (!empty($cat))
        {
            print "<li>";
            print "<a href='" . get_site_url() . "/band-search-page/?cat=$cat'>" . $cat . "</a>";
            print "</li>";
        }
    }
}
else
{
    print "<li>";
    print "no categories";
    print "</li>";
}
?>

答案 1 :(得分:0)

尝试替换此行:

 print "<a href='" . get_site_url() . "/band-search-page/?cat=$cat'>" . $cat .   "</a>";

使用此行

 print "<a href='" . get_site_url() . "/band-search-page/?cat=$cat'>" . array_values(array_filter($cat) .   "</a>";

只需添加array_filter($ cat)即可删除空数组元素。

答案 2 :(得分:0)

不知道我是否理解正确,但我也在一个网站上工作,我只想显示其中存有帖子的类别名称。我刚刚使用if(category_count > 0)检查了它。

好吧,您可能需要设置类别并使用get_categories()进行调用,然后循环显示该类别,然后您可以category->count检查计数。

希望这可能会有所帮助...某人...... :)