gpt4 book ai didi

php - drupal_set_title 未设置 $title 变量

转载 作者:行者123 更新时间:2023-12-02 12:01:00 25 4
gpt4 key购买 nike

我试图在我的node.tpl.php中使用drupal_set_title,但我设置标题的文本仅显示在$head_title变量中,而不是$title变量中。 $title 变量仍然设置为节点的标题。

这是在 Drupal 7 中。我在 Drupal 6 中多次使用过 drupal_set_title,并且效果非常好。

最佳答案

我认为这不起作用的原因是你从哪里调用它。 Drupal 的模板系统通过构建变量($title 就是其中之一)并将它们传递到模板文件来工作。

当您到达 node.tpl.php 时,$title 变量(仅在该文件的范围内可用)已经确定。因此,在调用 drupal_set_title 时,将可以将 $head_title 更改为 html.tpl.php (晚于 node.tpl 调用) .php,它无法更改您从中调用代码的模板文件的变量。

最好的选择是在主题的 template.php 中放置一个预处理函数,该函数在处理模板文件之前设置标题:

function MYTHEME_preprocess_node(&$vars) {
drupal_set_title('A new title');
}

如果仍然不起作用,请尝试在同一预处理函数中显式设置 $vars['title'] = 'A new title';`。

最好的选择是编写一个非常小的自定义模块并实现 hook_node_view() ,它在模板文件进入进程之前被调用,并且应该始终有效:

function MYMODULE_node_view($node, $view_mode, $lang_code) {
drupal_set_title('A new title');
}

关于php - drupal_set_title 未设置 $title 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8809494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com