默认情况下,博客页面中的节点链接包含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