Wordpress - PHP:没有子类别时隐藏子类别
Wordpress - PHP : Hide subcategories when no subcategory
在开始之前,我想寻求您的帮助,因为我只有非常基础的 html 和 css 技能,完全没有 php 知识!
我想在 category.php 模板上显示子类别,位于目录标题和描述下方。我在 Whosebug 上找到了一个完美运行的代码(我在其中添加了 div class):
<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>
但是,当对不包含任何子类别的类别或子类别的页面收费时,会显示以下文字:"No category"。
在上面的php代码中,是否可以在没有子类别的情况下隐藏任何文本?非常感谢
如果有人感兴趣,下面是用于设置 div 样式的基本 css :
.sub-cat-inline li {
width: 100%;
display: inline;
padding: 10px;
}
.sub-cat-inline {
text-align: center;
}
你可以这样使用它:
<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>
您可以使用 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() 函数将 return 一个 'No categories' 文本(正如您已经注意到的那样)。
要在未找到类别时更改函数 return 的内容,您可以使用 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= ');
echo '<ul>' . $new_cats . '</ul>';
}
}
?>
</div>
有一个使用 css 的解决方法,因为 "No category" 文本默认链接到 css 属性:cat-item-none
使用显示: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>
在开始之前,我想寻求您的帮助,因为我只有非常基础的 html 和 css 技能,完全没有 php 知识!
我想在 category.php 模板上显示子类别,位于目录标题和描述下方。我在 Whosebug 上找到了一个完美运行的代码(我在其中添加了 div class):
<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>
但是,当对不包含任何子类别的类别或子类别的页面收费时,会显示以下文字:"No category"。
在上面的php代码中,是否可以在没有子类别的情况下隐藏任何文本?非常感谢
如果有人感兴趣,下面是用于设置 div 样式的基本 css :
.sub-cat-inline li {
width: 100%;
display: inline;
padding: 10px;
}
.sub-cat-inline {
text-align: center;
}
你可以这样使用它:
<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>
您可以使用 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() 函数将 return 一个 'No categories' 文本(正如您已经注意到的那样)。
要在未找到类别时更改函数 return 的内容,您可以使用 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= ');
echo '<ul>' . $new_cats . '</ul>';
}
}
?>
</div>
有一个使用 css 的解决方法,因为 "No category" 文本默认链接到 css 属性:cat-item-none
使用显示: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>