2012-11-04 94 views
0

有沒有辦法從這個foreach循環中的列表中排除一位老師(「Robert」),並將他的條目分別放在頂部?顯示全部在foreach,但

$teachers = get_terms('teacher'); 
foreach($teachers as $teacher) { 
    $link = get_term_link(intval($teacher->term_id),'teacher'); 
    $description = term_description(intval($teacher->term_id),'teacher'); 
    echo "<h3><a href=\"{$link}\">{$teacher->name}</a></h3>"; 
    echo substr($description,0,200) . "..."; 
    } 

'老師'是一個WordPress分類術語。我正在努力創建一份羅伯特所有老師的名單,因爲他是班主任。

+0

您如何定義或識別教師頭? – GBD

+0

他的定義不同 - 它只是說他是他的描述中的「頭」。 – user1444027

+0

是否全是固定值? – GBD

回答

2

由於顯而易見的原因,此解決方案很浪費,例如,您可以將內部細節放入局部以保存兩次重複回顯代碼(不要重複自己,乾燥)。修改生成的查詢也會更好,所以班主任總是第一個結果,但要感謝您使用的框架可能無法實現。

使用抽象的「校長」值檢查,而不是硬編碼名稱也會更好。

$teachers = get_terms('teacher'); 
foreach($teachers as $teacher) { 
    if($teacher->name == 'Robert') { 
     $link = get_term_link(intval($teacher->term_id),'teacher'); 
     $description = term_description(intval($teacher->term_id),'teacher'); 
     echo "<h3><a href=\"{$link}\">{$teacher->name}</a></h3>"; 
     echo substr($description,0,200) . "..."; 
    } 
} 

foreach($teachers as $teacher) { 
    if($teacher->name != 'Robert') { 
     $link = get_term_link(intval($teacher->term_id),'teacher'); 
     $description = term_description(intval($teacher->term_id),'teacher'); 
     echo "<h3><a href=\"{$link}\">{$teacher->name}</a></h3>"; 
     echo substr($description,0,200) . "..."; 
    } 
} 
+0

謝謝馬丁。 if行缺少一個開放的大括號,但除此之外,這是完美的。非常感謝!! – user1444027

+0

嗯,是習慣瞭然後被添加爲我,被寵壞了。修復它在回答。 –