通过路径更改Drupal 7中页面的标题


8

我需要按路径更改Drupal 7中页面的标题。注意所有内容类型。我需要将标题更改为使用视图生成的特定页面。

例如,我有一个网站http://www.mysite.com

<title>My favorite website </title>

我需要用于页面:

http://www.mysite.com/test

<title> My test today </title>

http://www.mysite.com/examples

<title> My examples for share </title>

谢谢。


我不确定“将标题更改为特定节点”是什么意思。你能澄清一下吗?在这方面有帮助的两个通用模块是drupal.org/project/pathautodrupal.org/project/auto_nodetitle 您可以检查一下它们,如果它们不起作用,请说明您的用例与这些通用模块的不同之处处理。
Patrick Kenny

我指的是出现在meta标签中的“ title head”。浏览器标签中显示的标题。谢谢。
cabita 2012年

Answers:


11

这是我在Drupal 7中所做的。

在template.php中:

function YOUR_THEME_preprocess_page(&$vars){
  $path = $_GET['q'];

  if (strpos($path,'YOUR_PATH_STRING') !== false) {
    drupal_set_title('YOUR_TITLE');
  }
}

例如,如果您的路径是yoursite.com/boogabooga,那么您将设置'YOUR_PATH_STRING'为“ boogabooga”,并设置为'YOUR_TITLE'您希望页面标题为任何内容。


这对于hook_preprocess_user_profile不起作用
Francisco Corrales Morales

为定位<front>页面写的字符串是什么?
火星

14

听起来您的网页数量有限,可能会实施THEME_preprocess_html()并检查url路径并覆盖$vars['head_title']。请参阅此博客文章作为示例:如何在Drupal 7中设置自定义页面标题

如果标题有一些样式,请尝试页面标题


我看到了帖子,并且有一个问题,是否要为特定路径分配“标题”。并非所有路径都具有相同的标题。例如,我需要mysite.com/test,<title>是“我的测试”,而我还有其他页面mysite.com/examples,我需要那个<title>“共享示例”。这段代码对这个目的有用吗?我已经更新了我的帖子。
cabita 2012年

@cabita Tenken的帖子介绍了您的用例。除了他已经提到的内容之外,您还可以使用元标记模块。所有这三个选项使您可以设置所需的特定节点页面的标题,而无需进行其余操作。
Madis 2012年

我尝试使用meta标签,并允许更改特定页面的标题,但不允许更改视图生成的特定页面的标题。我将再次更新我的问题。对不起。
cabita 2012年

@cabita您是否也尝试过页面标题?它至少声称具有视图集成。如果仍然无法解决问题,则可以继续在代码中进行操作(仅通过使用$ _GET ['q']或arg()来检查路径即可将更改限制在特定页面上很容易)。
Madis 2012年

我在代码中做了。没错,仅通过使用$ _GET ['q']或arg()就可以将更改限制在特定页面上。
cabita 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.