it-swarm-eu.dev

Jak odstranit určité metaznačky?

Jak mohu tyto značky ze svých stránek odebrat v Drupal 7?

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

Aktualizace: Mám kód pro template.php, který odstraňuje generátor a kanonické značky.

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

Může někdo přidat něco, aby odstranil značku krátkého odkazu?

18
user332

To se zobrazí v html.tpl.php v proměnné $ head. $ head se přidá k proměnným v template_process_html pomocí drupal_get_html_head () . V této funkci můžete vidět, že se volá hook_html_head_alter () .

Můžete je odstranit.

Mějte však na paměti, že tyto odkazy mohou být pro SEO důležité, aby se zabránilo tomu, že vyhledávač si myslí, že na vašem webu máte duplicitní obsah, pokud je například uzel dostupný prostřednictvím uzlu/uzlu a aliasu.

11
Berdir

V souboru template.php používám následující funkci:

/**
 * 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

Také jsem vyřešil shortlink, modifikoval jsem váš kód.

Někdo to mohl pořádně uklidit, protože nevím, jak to správně uvést, a to ani tehdy, má-li tímto způsobem vedlejší účinky. To však způsobí, že nechtěné odkazy zmizí z hlavy.

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

Ano, je to řeznický přístup k kanonickým vazbám, ale dokud nedojde k lepšímu suloci, je to stále lepší.

CO PROČ: potřebujete kanonické odkazy zobrazené POUZE na duplikovaných stránkách, ty, které nejsou upřednostňovanou verzí. Původní stránky by měly zůstat samy: neměly by se tam zobrazovat žádné kanonické! Proto stále řezím.

4
Levente