0

I have this array in a Drupal 7 installation, it outupts the term list that belongs to a specific vocabulary id:

<?php print render($content['taxonomy_vocabulary_3']); ?>

Now, what this does it outputs the result in a list, I would like to output it in a comma separated line.

Now, I suppose that I could do that with a foreach statement?

I´ve tried this, after reading the documentation, but it outputted nothing:

foreach($taxonomy_vocabulary_3 as $id=>$tag) {
echo "$tag, " ;
}

I´ve looked into what the Devel module told me about that array, and it showed me this:

taxonomy_vocabulary_3 (Array, 1 element)
    und (Array, 2 elements)
        0 (Array, 1 element)
            tid (String, 3 characters ) 141
        1 (Array, 1 element)
            tid (String, 3 characters ) 320

But as you can see it shows the term id in each case, and not the term name...

What do you suggest? Thanks!!

4

2 に答える 2

2

あなたが得たのはビルドアレイです-つまり、

$content['taxonomy_vocabulary_3']['#theme']

語彙をレンダリングするために使用されるテーマ関数になります。出力を変更したい場合は、2つの良い解決策があります。

  • テーマの標準テーマ関数をオーバーライドします。これにより、そのテーマ関数へのすべての呼び出しの出力が変更されます。この場合、すべての語彙がどのようにレンダリングされるかが変わります。
  • #theme値を好みのテーマ関数に変更します。これは、テーマで定義したカスタムテーマ関数である可能性があります。

用語のレンダリング方法については、元のテーマ関数がどのように実装されているかを確認できます。DrupalAPIのドキュメントで確認できます。

于 2012-08-18T18:00:45.633 に答える
2

用語をロードしてから、そのタイトルを印刷できます。

foreach($vocabulary as $tid) {
  $term = taxonomy_term_load($tid);
  // print whatever you want from this object.
  print $term->title . ', '; 
}   

taxonomy_term_load

于 2012-08-19T05:09:20.600 に答える