Я пытаюсь сделать оператор if, который будет повторять слово для каждой категории, в которой находится сообщение, он получает название категории из идентификатора сообщения, но первая категория – это All Stories, поэтому я попросил его получить вторую категорию, которую сообщение в:
$category_detail=get_the_category( $post->ID )[1]->name; echo $category_detail; // echoes COMPANY NEWS if($category_detail == "COMPANY NEWS") { echo "C_News"; } elseif ($category_detail == "SECTOR OPPORTUNITIES") { echo "S_News"; }
но результатом является C_News после каждой категории сообщений, даже если это не подходящая категория.
Я пробовал использовать is_category («Новости компании»), но это не сработало, любые предложения были бы очень благодарны.
Вы ищете сравнение ( ==
) вместо назначения ( =
):
$category_detail=get_the_category( $post->ID )[1]->name; echo $category_detail; // echoes COMPANY NEWS if($category_detail == "COMPANY NEWS") { echo "C_News"; } elseif ($category_detail == "SECTOR NEWS") { echo "S_News"; }
Ваш код ( if ($category_detail = "COMPANY NEWS")
) всегда верен, так как он является заданием , поэтому он всегда будет COMPANY NEWS
филиал COMPANY NEWS
.
Единственная проблема, которую я вижу, заключается в том, что вам нужно использовать оператор сравнения («==») вместо установки переменной $ category_detail с («=»). Убедитесь, что вы меняете это в местах BOTH.
Также обратите внимание, что стандарты кодирования wordpress говорят, что ваше сравнение должно иметь переменную справа, таким образом, если вы когда-либо неправильно написали ее или что-то еще не получилось, операция завершилась неудачно и выбрасывает ошибку, а не ВСЕГДА возвращает true.
Пример:
if( "Company News" == $category_detail ){ echo "hello world"; }