Почему не работает оператор if if с функцией get_the_category?

Я пытаюсь сделать оператор 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"; }