首頁出現奇怪的錯誤碼?

Drupal version: 
7.x

日前安裝了FAQ模組,發了第1篇關於Drupal 7的FAQ之後,就在首頁看到一卡車的滿江紅。類似這樣:

Notice: Undefined index: taxonomy_term in taxonomy_field_formatter_view() (line 1368 of /home/www/d-test/dde/public/modules/taxonomy/taxonomy.module).

Notice: Trying to get property of non-object in entity_extract_ids() (line 7286 of /home/www/d-test/dde/public/includes/common.inc).

Notice: Trying to get property of non-object in taxonomy_term_uri() (line 148 of /home/www/d-test/dde/public/modules/taxonomy/taxonomy.module).

Notice: Trying to get property of non-object in taxonomy_field_formatter_view() (line 1372 of /home/www/d-test/dde/public/modules/taxonomy/taxonomy.module).

媽呀,玩drupal什麼不怕,最怕就是你看到一大串看不懂的錯誤碼、又不知道剛剛是做了什麼蠢事才搞成這樣的。crying

複製了部份的錯誤碼並搜尋之後,在Drupal.org上找到相關的討論。一開始看到有人說,是因為在CCK的部份重複使用同一個欄位、然後顯示在摘要模式,就會出現這種問題。所以我就以為問題是出在摘要模式上,於是就直接去編輯FAQ內容類型的欄位顯示設定,把重複使用的image、version欄位通通隱藏起來。

可是回首頁一看,問題還是在。反而進摘要顯示的時候,錯誤碼就消失了。襪靠,這不是鬼打牆嗎?devil

發覺問題不出在摘要模式之後,就沉住氣,把相關的討論看完。最後在這一篇找到了線索。從錯誤碼看來,問題主要出在taxonomy模組上頭,而討論文章裡頭也有提到這些錯誤碼這個模組有關。我回頭看再看一次FAQ的欄位顯示設定,發覺在摘要模式中,預設會隱藏重複使用的taxonomy欄位。試著把該欄位取消隱藏,哇哈,錯誤碼就說掰掰了。laugh

原來,問題就出在,如果你要在不同的內容類型中重複使用同一個分類欄位,你一定得讓他出現在摘要顯示模式中。(不是胡扯,我試著在預設模式中隱藏重複使用的分類欄位,結果啥事也沒有;但只要在摘要模式隱藏該欄位,首頁就一定滿江紅。屢試不爽。)不過呢,從Drupal一貫以來的高彈性設計方向來說,會有這種情況,這一定是一個Bug!angry

Area: