Como remover determinadas meta tags?

18

Como posso remover essas tags das minhas páginas no Drupal 7?

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

Atualização : Eu tenho o código para template.php, que remove o gerador e as tags canônicas.

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]); 
    }
  }
}

Alguém pode adicionar algo para remover a tag de link curto?

Pierre.Vriens
fonte
11
Tudo parece bom, mas por que tirar canônicos? Isso é realmente útil.

Respostas:

11

Isso é exibido em html.tpl.php na variável $ head. $ head é adicionado às variáveis ​​em template_process_html usando drupal_get_html_head () . Nessa função, você pode ver que hook_html_head_alter () é chamado.

Você pode removê-los.

No entanto, observe que esses links podem ser importantes para o SEO, para evitar que um mecanismo de pesquisa pense que você possui conteúdo duplicado no site, se, por exemplo, um nó estiver disponível por meio de node / nid e o alias.

Berdir
fonte
hmm eu acho, mas ainda não consigo removê-lo :) Acho que devo aprender php em breve :) Acho o código que pode ser adicionado ao template.php (no modelo) e o código remove a linha "Generator". função program_html_head_alter (& $ head_elements) {unset ($ head_elements ['system_meta_generator']); }
mas ainda tenho problemas com 2 linhas adicionais que preciso remover. Não é bom seo se você tiver uma página inicial personalizada e um endereço canônico não para o domínio principal, apenas para a subpágina ... o mesmo com o atalho - por que alguém pode ver que esse artigo tem um endereço adicional com /node/... idéia idiota para adicionar essas linhas para d7
Portanto, se eu tiver uma nova instalação do D7 com URLs e pathauto limpos, o link do URL canônico será automaticamente definido?
21711 Andy
Deveria ser, sim.
Berdir 27/03
5

Eu uso a seguinte função no meu arquivo 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>';
    // */
}
Triturador de Carne
fonte
Isso não funcionou para mim - 'metatag_canonicale 'metatag_shortlinknão existe como índice de $head_elements(isso é no Drupal 7). A resposta dada por @Levente funcionou bem.
4

Também resolvi o shortlink, modificando seu código.

Alguém poderia arrumá-lo adequadamente, porque eu não sei como colocá-lo corretamente, e nem se tem efeitos colaterais dessa maneira ou não. Isso faz com que os links indesejados desapareçam da cabeça.

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]);
    }
  }
}

Sim, é a atitude de um açougueiro em relação aos vínculos canônicos, mas até que não ocorra melhor sulotion, isso ainda é melhor.

É POR ISSO: você precisa de links canônicos mostrados APENAS nas páginas duplicadas, aquelas que não são a versão preferida. As páginas originais devem ser deixadas em paz: nenhuma canônica deve aparecer lá! É por isso que eu ainda ando por aí.

Levente
fonte