1

以前は、drupal 6 で特定の語彙からすべての用語を読み込んでカスタム メニューを作成する関数がありました。

function _taxonomy_top_links($vid = NULL) {
  $terms = taxonomy_get_tree($vid);

  $taxos = array();
  foreach ($terms as $term) {
    $taxos[] = array('title' => $term->name, 'taxonomy/term/' . $term->tid, 'attributes' => array('rel' => 'tag', 'title' => strip_tags($term->description)));
  }
  return theme('links', $taxos, array('id' => 'menu-'. $vid, 'class' => 'menu clearfix'));
}

これは、新しいフィールド API に関連していると思われる drupal 7 では機能しません。特定の語彙からすべての用語を取得して、ページ レベルで前処理するにはどうすればよいでしょうか?

助けてくれてありがとう。

4

1 に答える 1

1

ほとんどのコードは実際には正常に動作するはずですが、間違っているのはテーマ部分です。

$terms = taxonomy_get_tree($vid, 0, NULL, TRUE);

$links = array();
foreach ($terms as $term) {
  $uri = entity_uri('taxonomy_term', $term);
  $link = array(
    'title' => $term->name,
    'href' => $uri['path'],
    'attributes' => array('rel' => 'tag'),
  );
  $link += $uri['options'];
  if (!empty($term->description)) {
    $link['title'] = strip_tags($term->description);
  }
  $links['tid-' . $term->tid] = $link;
}

$variables = array(
  'links' => $links,
  'attributes' => array(
    'id' => 'menu-' . $vid,
    'class' => array('menu', 'clearfix'),
  ),
);

return theme('links', $variables);
于 2011-02-01T06:27:36.483 に答える