在node.tpl.php輸出欄位(Drupal 7)

in

我們都知道node.tpl.php裡面包含了標題(title)、作者日期(submitted)、內文(content)、連結(links)和回應(comments),但如果你想改變Content裡面的東西,必須用Content Template才有辦法。

可是Content Template有個問題,就是對於一些模組生成的field widget特定的顯示方式,常常沒辦法直接呼叫,比方說Fivestar或是一些image field顯示widget(如非常好用的Gallery formatter),這些模組的用意是讓你在後台決定該欄位的顯示方式,但如果你使用Content Template,這些模組就會失效。

其實有個更聰明的方式,不需用Content template,並且可以自行編輯Content裡面的欄位格式,自己決定輸出方式,當你想要依照後台設定的輸出方式,只要找到你要theming的Template Suggestions,然後在該node.tpl.php檔案裡,依照以下作法:

Drupal 6

print $FIELD_NAME_rendered;

Drupal 7

print render($content['FIELD_NAME']);

這樣render出來的欄位,就會是後台Field Display所設定的格式輸出,你還是可以在他前後加上你想要的html元素,wrapper或是prefix、subfix,非常方便!

現在就可以丟棄Content Template啦!