【问题标题】:How to only show category description and title if there's a description available?如果有可用描述,如何仅显示类别描述和标题?
【发布时间】:2021-06-09 05:28:40
【问题描述】:

如果有类别描述,是否可以只显示下面的代码?

<h2>About <?php $cat = get_the_category(); echo $cat[0]->cat_name; ?></h2>

<?php $catID = get_the_category(); echo category_description ( $catID[0] ); ?>

我在 Wordpress 中的单个帖子中有这些代码,但有时,我忘记在我添加的新类别中添加描述。因此,当用户访问帖子时,他们只会看到关于类别这个词,而根本看不到任何描述,使其看起来像是一篇不完整的文章。

我不是开发人员,也不熟悉 PHP。我只在 single.php 上添加了该代码以显示描述。但我希望它在没有可用描述时不显示。

希望有人能给我确切的代码以使其工作。

谢谢!

【问题讨论】:

  • 在没有描述时检查返回 category_description ( $catID[0] ) 的内容。很可能它只是空的,因此您可以尝试:&lt;?PHP if(!empty(category_description ( $catID[0] ))){ //continue } ?&gt; 如果这不起作用,请尝试isset()
  • @AlexandruBurca 感谢您的建议,但不幸的是,我对 PHP 和 Wordpress 代码的了解不够。对不起。

标签: php wordpress


【解决方案1】:

在输入 HTML 之前,尽可能将值分配给脚本顶部的变量是一种很好的做法。这将有助于防止您进行冗余调用并更好地调试您的代码。获得分配的值后,您将需要检查该值是否为空。我假设您提供的代码将始终为索引 0 返回某种值。

<?php
    $cat        = get_the_category();
    $cat_0      = $cat[0];
    $cat_0_name = $cat_0->cat_name;
    $cat_0_desc = category_description($cat_0);
?>

<?php if(!empty($cat_0_desc)): ?>
    <h2>About <?php echo $cat_0_name; ?></h2>
    <?php echo $cat_0_desc; ?>
<?php endif; ?>

我想指出,我选择使用alternative syntax for control structures 与传统的大括号控件相比。这将使您的代码在与 HTML 混合时更具可读性和易于调试。

如果您的代码仍然向您抛出错误,我建议您检查您的错误日志,因为在 get_the_cateory() 调用期间会发生一些事情,或者它没有返回任何导致 $cat[0] 错误的值。

【讨论】:

  • 这一项有效,但类别名称未显示在 About 之后。
  • 我编辑了代码。将$cat_0_name; 替换为$cat[0]-&gt;cat_name;
  • @Katriona 是的,这取决于我。当分配$cat_0_name 变量时,我将其设置为等于$cat-&gt;cat_name 而不是$cat_0-&gt;cat_name。祝你好运!
【解决方案2】:
<?php if ($cat = get_the_category() && count($cat)>0) { ?>
    <!-- <?php echo print_r($cat,1); ?> -->
   <h2>About <?php echo $cat[0]->cat_name;?></h2>
   <?php echo category_description ($cat[0]->cat_id); ?>
<?php } ?>

【讨论】:

  • 嗨。我试图使用你的代码,但它对我不起作用。它刚刚破坏了网站。
  • 对不起,有一个错字 -if 不是 id -- 我更新了我的答案
  • 感谢您的快速更新。但是,它仍然无法正常工作。当我添加代码时,即使类别有描述,类别名称和描述也不会显示。此外,“关于”字样也出现了......
  • 哎呀。我还有一个错字,抱歉移动得太快了。这是在上面的代码中修复的。但是,我不知道你的 $cat 是什么样子的。是数组还是单个对象?
  • 我在答案中添加了调试。你可以试试看它生成的 html 并粘贴到&lt;!-- 评论中显示的内容吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
  • 2020-06-18
  • 2012-09-18
  • 1970-01-01
相关资源
最近更新 更多