PHP / WordPress Проверьте, находится ли сообщение в категории, а затем отобразите значок. Частично работает

http://104.152.110.248/~baron/category/recipes/ — Сайт, над которым я работаю

Так что я делаю так, чтобы, когда сообщение (получатель) находилось в определенной категории, я хотел, чтобы соответствующий значок появлялся рядом с заголовком сообщения.
Например, крабовые пироги относятся к категории рыб, поэтому рядом с заголовком должна отображаться только иконка рыбы. И Филе Mingion только в категории говядины, поэтому он должен отображать только значок коровы.

У меня проблема в том, что если есть ЛЮБЫЕ посты с назначенной категорией говядины, он отображает значок говядины для ВСЕХ постов. Пока я хочу, чтобы он отображался только для поста, которому назначена категория говядины.

Это текущий код, который я использую для этого.

    <?php
if ($all_the_tags);
$all_the_tags = get_categories();
foreach($all_the_tags as $this_tag) {
if ($this_tag->name == "Spicy" ) {
?>
<img class="icons" src="http://104.152.110.248/~baron/wp-content/themes/Baron/img/icons/Chili Pepper Filled.png">

<?php   } else if ($this_tag->name == "Chicken" ) { ?>

<img class="icons" src="http://104.152.110.248/~baron/wp-content/themes/Baron/img/icons/Chicken Filled.png">

<?php   } else if ($this_tag->name == "Vegetables" ) { ?>

<img class="icons" src="http://104.152.110.248/~baron/wp-content/themes/Baron/img/icons/Tomato Filled.png">

<?php   } else if ($this_tag->name == "Fish" ) { ?>

<img class="icons" src="http://104.152.110.248/~baron/wp-content/themes/Baron/img/icons/Fish Food Filled.png">

<?php   } else if ($this_tag->name == "Pork" ) { ?>

<img class="icons" src="http://104.152.110.248/~baron/wp-content/themes/Baron/img/icons/Pig.png">

<?php   } else if ($this_tag->name == "Beef" ) { ?>

<img class="icons" src="http://104.152.110.248/~baron/wp-content/themes/Baron/img/icons/Cow Filled.png">

<?php   } else {
// it's neither, do nothing
?>
<!-- not tagged as one or the other -->
<?
}
}
?>

0

Решение

Попробуйте это, замените ваш код следующим кодом:

<?php
if (has_category("Spicy",get_the_id())) {
?>
<img class="icons" src="http://104.152.110.248/~baron/wp-content/themes/Baron/img/icons/Chili Pepper Filled.png">

<?php   } else if (has_category("Chicken",get_the_id())) { ?>

<img class="icons" src="http://104.152.110.248/~baron/wp-content/themes/Baron/img/icons/Chicken Filled.png">

<?php   } else if (has_category("Vegetables",get_the_id())) { ?>

<img class="icons" src="http://104.152.110.248/~baron/wp-content/themes/Baron/img/icons/Tomato Filled.png">

<?php   } else if (has_category("Fish",get_the_id())) { ?>

<img class="icons" src="http://104.152.110.248/~baron/wp-content/themes/Baron/img/icons/Fish Food Filled.png">

<?php   } else if (has_category("Pork",get_the_id())) { ?>

<img class="icons" src="http://104.152.110.248/~baron/wp-content/themes/Baron/img/icons/Pig.png">

<?php   } else if (has_category("Beef",get_the_id())) { ?>

<img class="icons" src="http://104.152.110.248/~baron/wp-content/themes/Baron/img/icons/Cow Filled.png">

<?php   } else {
// it's neither, do nothing
?>
<!-- not tagged as one or the other -->
<?
}
?>

Ссылка: https://developer.wordpress.org/reference/functions/has_category/

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]