0

この foreach ループのリストから 1 人の教師 ("Robert") を除外し、彼のエントリを個別に一番上に置く方法はありますか?

$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) . "...";
  }

「先生」はWor​​dpressの分類用語です。ロバートが校長であるため、一番上にあるすべての教師のリストを作成しようとしています。

4

1 に答える 1

2

明らかな理由から、このソリューションは無駄です。たとえば、内部の詳細を部分的に配置して、エコー コードを 2 回繰り返すことを節約できます (Dont Repeat Yourself、DRY)。また、ヘッド ティーチャーが常に最初の結果になるように生成クエリを変更することをお勧めしますが、使用しているフレームワークではそれができない場合があることを理解してください。

また、名前をハードコーディングするよりも、抽象化された「校長」の値を使用してチェックする方がよいでしょう。

$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) . "...";
    }
}
于 2012-11-04T15:16:32.230 に答える