为什么我的if语句不能与get_the_category一起使用?

时间:2016-02-26 14:21:23

标签: php wordpress

我试图制作一个if语句,用于回复帖子所在的每个类别的单词,它从帖子ID中获取类别名称,但第一个类别是所有故事,所以我要求它获得第二个类别帖子在:

     $http.post('Controller/Method', {
                data: CollectionOfObject
            }).
           success(function (data, status, headers, config) {
              alert("success");                       
           }).
           error(function (data, status, headers, config) {
              alert("error");
           });

但结果是每个帖子类别后的C_News,即使它不是正确的类别。

enter image description here enter image description here

我尝试使用is_category('公司新闻')但是没有用,任何建议都会受到高度赞赏。

2 个答案:

答案 0 :(得分:4)

您正在寻找比较==)而不是作业=):

$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"))始终为true,因为它是赋值,因此它始终会回显COMPANY NEWS分支。

答案 1 :(得分:1)

我能看到的唯一问题是你需要使用比较运算符(“==”)而不是用(“=”)设置$ category_detail变量。确保你在两个地方改变它。

另请注意,wordpress编码标准说你的比较应该在右边有变量,如果你输入错误或其他东西变得不稳定操作失败并抛出错误而不是总是返回true。

示例:

if( "Company News" == $category_detail ){
    echo "hello world";
}