Wordpress - PHP:没有子类别时隐藏子类别

时间:2018-04-04 12:01:35

标签: php wordpress categories

在我开始之前,我正在寻求你的帮助,因为我有非常基本的html和css技能,而且绝对没有PHP知识!

我想在category.php模板上显示子类别,在caterogy标题和描述下面。我在stackoverflow上找到了一个完美的代码(我添加了一个div类):

<div class="sub-cat-inline"><?php
    // if the page visitor views is a category page
if (is_category())
{
$cur_cat = get_query_var('cat');
    if ($cur_cat) 
    {
        $new_cats = wp_list_categories('echo=false&child_of=' . $cur_cat . '&depth=1&title_li=&hide_empty=0');
        echo '<ul>' . $new_cats . '</ul>';
    }
}
?>
</div>

但是,在对不包含任何子类别的类别或子类别的页面收费时,会显示此文本:“无类别”。

在上面的php代码中,当没有子类别时是否可以隐藏任何文本?非常感谢

如果有兴趣,下面是用于设置div样式的基本css:

.sub-cat-inline li {
    width: 100%;
    display: inline;
    padding: 10px;

}

.sub-cat-inline {
    text-align: center;
}

3 个答案:

答案 0 :(得分:0)

您可以像这样使用它:

<div class="sub-cat-inline"><?php
    // if the page visitor views is a category page
if (is_category())
{
$cur_cat = get_query_var('cat');
    if ($cur_cat) 
    {
        $new_cats = wp_list_categories('echo=false&child_of=' . $cur_cat . '&depth=1&title_li=&hide_empty=0'); 
        if(!empty($new_cats)){
            echo '<ul>' . $new_cats . '</ul>';
        }
    }
}
?>
</div>

答案 1 :(得分:0)

您可以使用hide_if_empty参数从列表中排除那些没有附加帖子的类别:

<?php

<div class="sub-cat-inline"><?php
    // if the page visitor views is a category page
if (is_category())
{
$cur_cat = get_query_var('cat');
    if ($cur_cat) 
    {
        $new_cats = wp_list_categories('echo=false&child_of=' . $cur_cat . '&depth=1&title_li=&hide_empty=1');
        echo '<ul>' . $new_cats . '</ul>';
    }
}
?>
</div>

此外,如果未找到任何类别,则wp_list_categories()功能将返回“没有类别”#39;文字(你已经注意到了)。

要更改未找到类别时函数返回的内容,可以使用show_option_none参数:

<?php

<div class="sub-cat-inline"><?php
    // if the page visitor views is a category page
if (is_category())
{
$cur_cat = get_query_var('cat');
    if ($cur_cat) 
    {
        $new_cats = wp_list_categories('echo=false&child_of=' . $cur_cat . '&depth=1&title_li=&hide_empty=1&show_option_none=&nbsp;');
        echo '<ul>' . $new_cats . '</ul>';
    }
}
?>
</div>

答案 2 :(得分:0)

有一种使用css的解决方法,作为&#34; No category&#34;默认情况下,text链接到css属性:cat-item-none

使用display:none;隐藏该文本,但我确定有一种方法可以防止该文本与php代码一起显示,对吗?

我尝试将值hide_empty = 0更改为hide_empty = 1,但它没有做任何事情......任何想法?

<div class="sub-cat-inline"><?php
    // if the page visitor views is a category page
if (is_category())
{
$cur_cat = get_query_var('cat');
    if ($cur_cat) 
    {
        $new_cats = wp_list_categories('echo=false&child_of=' . $cur_cat . '&depth=1&title_li=&hide_empty=0');
        echo '<ul>' . $new_cats . '</ul>';
    }
}
?>
</div>