Можно ли показывать приведенный ниже код только при наличии описания категории?

<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, чтобы показать описание. Но я хочу, чтобы это не отображалось, когда нет описания.

Надеюсь, кто-нибудь может дать мне точный код, чтобы он работал.

Благодарность!

0
Katriona 8 Июн 2021 в 19:23

2 ответа

Лучший ответ

Хорошая практика - по возможности присваивать значения переменным в верхней части сценария перед вводом в 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; ?>

Я хотел бы отметить, что я предпочитаю использовать альтернативу синтаксис для управляющих структур по сравнению с традиционными скобками. Это сделает ваш код более читабельным и легко отлаживаемым при смешивании с HTML.

Если ваш код по-прежнему выдает ошибки, я бы посоветовал вам проверить журналы ошибок, так как что-то происходит во время вызова get_the_cateory() или что он не возвращает никаких значений, приводящих к ошибке с $cat[0].

0
Daerik 8 Июн 2021 в 21:28
<?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 } ?>
0
Kinglish 8 Июн 2021 в 16:50