2016-02-26 95 views
0

我試圖做一個if語句來回應帖子所在的每個類別的單詞,它從帖子id中獲得類別名稱,但第一個類別是All Stories,所以我要求它獲得第二個類別該帖子是在:爲什麼我的if語句不能使用get_the_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 OPPORTUNITIES") { 
    echo "S_News"; 
} 

但結果是每個職位類別後的C_News,即使它不是正確的類別。

enter image description here enter image description here

我嘗試使用is_category(「公司新聞」),但沒有工作,任何建議將不勝感激。

回答

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"))始終是真實的,因爲它是一個分配,因此將始終回顯COMPANY NEWS分支。

+0

沒有運氣完全不顯示任何內容。 – MrJoshFisher

+0

@MrJoshFisher:'$ category_detail'中的值(確切值)。另外,有沒有空白? – Jan

+0

使用echo $ category_detail;只是呼應「公司新聞」,顯然對於不同的職位有不同的結果。 – MrJoshFisher

1

我能看到的唯一問題是您需要使用比較運算符(「==」)而不是使用(「=」)設置$ category_detail變量。確保你在兩個地方改變了這一點。

還要注意,wordpress編碼標準說你的比較應該有右側的變量,這樣,如果你曾經錯誤地鍵入它或別的什麼都不會令操作失敗並拋出一個錯誤,而不是總是返回true。

例子:

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

我將比較運算符換成了==併爲了它的樂趣,我將它切換爲原來的樣子(「公司新聞」== $ category_detail),但仍然沒有運氣。 – MrJoshFisher

+0

請嘗試嚴格比較如果(「公司新聞」=== $ category_detail) 另外,==比較區分大小寫。您可以嘗試將兩個值設置爲低或大寫以進行精確比較。 –

相關問題