2014-10-08 80 views
0

這是一個問題,更多的是代碼的最佳實踐:在WordPress中獲取類別名稱 - 高效或「壞」代碼?

$cat_name = get_the_category()[0]->name; 

而是用幾個瓦爾這樣做,在幾個步驟:

$cat = get_the_category(); 
$cat_name = $cat[0]->name; 

這被認爲是不好的做法?或者它有什麼問題?如果是的話爲什麼同樣,我的問題是關於代碼,而不是結果。

回答

0

我想說這取決於您是否設置了php來顯示通知,以及您是否關心未定義的偏移量通知。這是問題(IMO)。檢查功能的開始:

function get_the_category($id = false) { 
    $categories = get_the_terms($id, 'category'); 
    if (! $categories || is_wp_error($categories)) 
     $categories = array(); 

你可以看到,如果沒有類別或錯誤「發生」,該方法返回一個空數組。做一個快速測試...

<?php 

$categories = array(); 

echo $categories[0]->name; 

我們得到

Notice: Undefined offset: 0 in test.php on line 5 

Notice: Trying to get property of non-object in test.php on line 5 

看這個問題?

可能是最好的:

$cat = get_the_category(); 
if ($cat) 
{ 
    $cat_name = $cat[0]->name; 
} 
+1

我明白了。比你的答案@typeoneerror。因此,在首先知道其中是否有任何元素之前,嘗試訪問數組中的元素並不是一個好主意。這確實有道理! – paramir 2014-10-08 18:28:18

相關問題