默認情況下,博客頁面中的節點鏈接包含blog_usernames_blog
(管理員的博客),comment_add
(添加新評論)和node_read_more
(閱讀更多)。Drupal 6中的主節點鏈接
我需要擺脫它們中的前兩個,並更改node_read_more中的文本。
我創建了一個在我的主題命名爲$themenamepreprocess_node
到的template.php功能,與此內容:
function mytheme_preprocess_node(&$vars, $hook){
$node = $vars['node'];
//blog node, not in full node page
if($vars['node']->type == 'blog' AND !$vars['page']){
$vars['node']->links['node_read_more']['title'] = t('My custom read more here');
unset($vars['node']->links['blog_usernames_blog']);
unset($vars['node']->links['comment_add']);
}
//debug:
echo "<!-- DEBUG\n";
print_r($vars['node']->links);
echo "\n-->";
}
但它不工作;當我在函數的最後打印$vars['node']->links
時,鏈接數組完全是我想要的;但是當頁面呈現時,會顯示舊的默認鏈接。
爲什麼? 我如何主題節點鏈接只是爲了一些內容類型,並且只在節點列表頁面中使用主題功能?
P.S:我清除緩存和主題註冊表每次嘗試之前;)
感謝您的建議,他們真的很感激,即時通訊新的drupal ..但你寫了錯誤的例子嗎?我看到你的例子使用theme_preprocess_node而不是theme_link,你指出 – Strae 2010-09-02 17:35:11
對不起。的確,我寫錯了這個功能。編輯它。 – berkes 2010-09-03 07:39:43
mmh ...在api.drupal.org沒有'theme_preprocess_links',也沒有任何'* _preprocess_links' ...你的意思是'hook_link_alter'? – Strae 2010-09-03 19:37:48