如何删除某些元标记?


18

如何从Drupal 7的页面中删除这些标签?

<link rel="shortlink" href=" .... " />
<meta name="Generator" content="Drupal 7 (http://drupal.org)" />
<link rel="canonical" href="...." />

更新:我有template.php的代码,它删除了生成器和规范标记。

function program_html_head_alter(&$head_elements) {
  unset($head_elements['system_meta_generator']);
  foreach ($head_elements as $key => $element) {
    if (isset($element['#attributes']['rel']) && $element['#attributes']['rel'] == 'canonical') {
      unset($head_elements[$key]); 
    }
  }
}

任何人都可以添加一些东西来删除短链接标签吗?


1
一切看起来都不错,但是为什么要拿出规范?这实际上是有帮助的。

Answers:


11

这显示在html.tpl.php中的变量$ head中。通过使用drupal_get_html_head()将$ head添加到template_process_html中的变量中。在该函数中,您可以看到已调用hook_html_head_alter()

您可以删除这些。

但是,请注意,这些链接对于SEO可能很重要,以避免搜索引擎认为您的网站上存在重复的内容,例如,如果某个节点可通过node / nid和别名使用。


嗯,我找到了它,但仍然无法将其删除:)我想我应该尽快学习php :)我找到了可以添加到template.php(在模板中)的代码,并且该代码删除了“ Generator”行。函数program_html_head_alter(&$ head_elements){unset($ head_elements ['system_meta_generator']);; }

但我仍然有2条我需要删除的附加行的问题。如果您有自定义主页,并且不为主域提供规范的url,而仅为子页面提供主域,则对seo不利。与shortlink相同-为什么有人可以看到该文章具有附加的/ node / ...愚蠢的主意这些行到d7

因此,如果我全新安装了带有干净URL和pathauto的D7,将自动设置规范的URL链接吗?
安迪

应该是的。
Berdir 2011年

5

我在template.php文件中使用以下功能:

/**
 * Used to remove certain elements from the $head output within html.tpl.php
 *
 * @see http://api.drupal.org/api/drupal/modules--system--system.api.php/function/hook_html_head_alter/7
 * @param array $head_elements
 */
function YOUR_THEME_NAME_html_head_alter(&$head_elements) {
    $remove = array(
        'system_meta_generator',
        'metatag_canonical',
        'metatag_shortlink'
    );

    foreach ($remove as $key) {
        if (isset($head_elements[$key])) {
            unset($head_elements[$key]);
        }
    }

    // Use this loop to find out which keys are available.
    /* -- Delete this line to execute this loop
    echo '<pre>';
    foreach ($head_elements as $key => $element) {
        echo $key ."\n";
    }
    echo '</pre>';
    // */
}

这对我不起作用- 'metatag_canonical并且'metatag_shortlink不作为$head_elements(在Drupal 7中)的索引存在。@Levente给出的答案很好。

4

我也解决了短链接,修改您的代码。

有人可以适当地整理它,因为我不知道如何正确地放置它,并且它是否也没有这种副作用。但是,它会使不需要的链接从头部消失。

function nameof_mytheme_html_head_alter(&$head_elements) {
  unset($head_elements['system_meta_generator']);
  foreach ($head_elements as $key => $element) {
    if (isset($element['#attributes']['rel']) && $element['#attributes']['rel'] == 'canonical') {
      unset($head_elements[$key]);
    }

    if (isset($element['#attributes']['rel']) && $element['#attributes']['rel'] == 'shortlink') {
      unset($head_elements[$key]);
    }
  }
}

是的,这是屠夫对规范链接的态度,但是直到没有更好的支持,这种情况才会更好。

原因:您只需要在重复的页面上显示规范链接,而不是首选版本。原始页面应任由他人使用:在那里不能显示任何规范!这就是为什么我仍然四处寻觅。

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.