it-swarm.it

Come rimuovere determinati meta tag?

Come posso rimuovere questi tag dalle mie pagine in Drupal 7?

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

Aggiornamento: Ho il codice per template.php, che rimuove il generatore e i tag canonici.

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

Qualcuno può aggiungere qualcosa per rimuovere il tag link breve?

17
user332

Questo viene visualizzato in html.tpl.php nella variabile $ head. $ head viene aggiunto alle variabili in template_process_html usando drupal_get_html_head () . In quella funzione, puoi vedere che si chiama hook_html_head_alter () .

Puoi rimuoverli.

Tuttavia, tieni presente che questi link possono essere importanti per la SEO, per evitare che un motore di ricerca pensi di avere contenuti duplicati sul tuo sito, se ad esempio un nodo è disponibile tramite node/nid e l'alias.

11
Berdir

Uso la seguente funzione nel mio file 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>';
    // */
}
5
Fleshgrinder

Ho risolto anche il collegamento, modificando il tuo codice.

Qualcuno potrebbe riordinarlo correttamente, perché non so come metterlo correttamente, e nemmeno se ha effetti collaterali in questo modo o no. Fa però scomparire i collegamenti indesiderati dalla testa.

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

Sì, è l'atteggiamento di un macellaio nei confronti dei legami canonici, ma fino a quando non viene fuori un sollievo migliore, questo è ancora meglio.

PERCHÉ: hai bisogno di collegamenti canonici mostrati SOLO sulle pagine duplicate, quelle che non sono la versione preferita. Le pagine originali dovrebbero essere lasciate sole: nessuno canonico dovrebbe essere mostrato lì! Ecco perché macello ancora.

4
Levente