2009-06-18 51 views
4

我使用的是Zend Framework 1.8。 headMeta()複製我的元關鍵字時遇到問題。Zend Framework headMeta() - 不添加關鍵字

在我layout.phtml,我有
<?php echo $this->headMeta(); ?>

我有一個自定義Controller_Plugin_ViewSetup(延伸Zend_Controller_Plugin_Abstract)已在它下面的代碼,在dispatchLoopStartup()功能:
$view->headMeta()->setHttpEquiv('Content-Type', 'text/html;charset=utf-8'); $view->headMeta()->setName('keywords', 'global,generic,keywords,');

最後,在我的視圖腳本中,我有以下內容:
$this->headMeta()->appendName('keywords', 'view,specific,keywords');

我期待在我的HTML源代碼,我會看到:
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="keywords" content="global,generic,keywords,view,specific,keywords" />

不過,我居然看到:
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="keywords" content="global,generic,keywords," />
<meta name="keywords" content="view,specific,keywords" />

換句話說,元關鍵字並不像他們應該那樣連接在一起。我究竟做錯了什麼?

乾杯,
馬特

+0

你的答案在這裏[http://stackoverflow.com/questions/5315312/multi-description-meta-tags-in-html-head](http://stackoverflow.com/questions/5315312/multi-description -meta-tags-in-html-head) – 2011-03-19 14:16:18

回答

5

這是因爲append方法不追加更多的關鍵詞來已經定義的列表。 append方法會將下一個標籤附加到已定義的標籤上。同樣,如果您選擇prepend,則會將您的新標籤添加到您在插件中定義的標籤之前。

我認爲,最好的辦法是從插件中刪除關鍵字佔位符,並將您的默認關鍵字存儲在您的配置對象中,並在您添加其他關鍵字的同時將其插入視圖中。

+0

感謝您的信息 - 猜測我沒有足夠的閱讀文檔!我會照你的建議去做 – fistameeny 2009-06-18 15:34:51