theme_menu_link中的current_path()返回上一个路径

时间:2014-04-24 18:56:15

标签: drupal drupal-7

我已在https://drupal.stackexchange.com/questions/111080/current-path-inside-theme-menu-link-returns-previous-path发布了该问题,但没有得到多少回复。由于这与编程有关,我想在这里试一试。

我正在尝试隐藏/显示基于我当前页面的菜单链接。我已将以下代码段添加到 mytheme 文件夹下的 template.php 文件中。

/**
* Implements theme_menu_link().
*/
function mytheme_menu_link(array $variables) {
   $path = current_path();
   debug($path);
   //Do things based on $path

}

我观察到一个非常奇怪的$ path值输出。我会尝试插画家将一张桌子

Time        |    Url          |   displayed $path value
   1        |    mysite/link1 |   none
   2        |    mysite/link2 |   link1
   3        |    mysite/link3 |   link2

它看起来像" current_path()" mytheme_menu_link里面的函数调用总是返回上一个路径。我花了一整天的谷歌搜索,没有看到任何类似于我的情况。

有人可以告诉我可能的原因是什么以及如何避免它?

谢谢!

PS:我在 mymodule_block_list_alter 函数中有另一个current_path()调用,并且该函数正常工作。

1 个答案:

答案 0 :(得分:0)

奇怪。这应该按预期工作。是否在代码中的某处修改了$ _GET [' q']?尝试从新的Drupal安装来实现主题功能。 如果没有完整的代码,就很难对此有所帮助。