我有一个Drupal 6.22站点,有这样的主要链接(使用Nice Menus):
Section 1
- Foo
- Bar
Section 2
- Page A
(...)
我的客户询问:如果用户点击“第1部分”,则会显示“Foo”页面。换句话说,当点击任何“部分”时,用户将被重定向到该部分的第一个孩子。
首先,我将菜单项“Section 1”路径修改为“section1 / foo”,但是Foo页面中的痕迹导航(我正在使用Menu Breadcrumbs)显示:
Home > Section 1
我希望面包屑能够显示出来:
Home > Section 1 > Foo
所以这没用,所以我安装了Redirect Module,定义了一个“section1 - > section1 / foo”重定向,但我无法创建指向“section1”的菜单项(它不是别名)。
有什么想法吗?提前谢谢。
答案 0 :(得分:2)
您需要直接编辑菜单数组。从您正在使用的当前主题中打开template.php,并将其添加到函数themename_preprocess_page(& $ vars)中:
的print_r($ VARS [ 'primary_links']);出口();
然后刷新网站上的任何页面,您将看到打印出的primary_links数组。它看起来像这样:
Array (
[menu-640 active-trail] => Array (
[attributes] => Array (
[title] => A Page Title
)
[href] => node/20
[title] => A Page Link Title
)
)
您可以通过将[href]设置为首选值来更改[href]。你需要通过foreach($ vars ['primary_links'])循环来获得创造力,以便让孩子适当地改变他们的父母,但这不应该太难。
答案 1 :(得分:1)
这是Drupal的一大痛苦。我的解决方案是专门为重定向页面创建一个节点。 (我实际上创建了一个名为Redirect的内容类型,所以我可以让pathauto以不同方式对待它们...自动创建像/ redirect / page-name这样的别名)创建该节点后,您可以设置从该页面到该页面的重定向真实的页面。
我还设置了robots.txt以禁止重定向/ *,这样Google就不会尝试将重定向页面编入索引,如果碰巧找到它们的话。