WordPress: Meta Tags ohne Plugin

WordPress stellt schon einige Angaben für den Head einer Webseite bereit. Doch Meta Tags um Artikel in Sozialen Netzwerken optimal darzustellen oder auch die für Google wichtigen Meta-Angaben fehlen. Normalerweise bedient man sich eines SEO-Plugins (wurde hier schon mal thematisiert) um diese Dinge nachzurüsten. Doch es geht auch ohne Plugin.

Meta Angaben des Artikels Chromium Edge spricht deutsch

Basis der nachfolgenden Funktion ist der Code-Snippet aus dem Artikel WordPress: Twitter Cards. Dieser Snippet wurde in nachfolgender Funktion um die Meta- Tags „description“, „robots“ und Open Graph erweitert.

function add_meta_data() {
  global $post;

  $blog_desc        = 'Horst Scheuer bloggt schon seit 2004. Aktuell sind in seinem Blog hauptsächlich Artikel zu den Themen WordPress, Firefox, Windows und FritzBox zu finden.';
  $blog_image       = 'https://horst-scheuer.de/wp-content/uploads/2019/06/tastatur.jpg';
  $the_twitter_name = 'Horst_bloggt';
  $the_twitter_card = 'summary_large_image'; // erlaubte Werte: 'summary' und 'summary_large_image'

  if (is_single()) {
    $the_url        = get_permalink();
    $the_title      = get_the_title();
    $the_desc       = get_the_excerpt();
    if ( has_post_thumbnail( $post->ID ) ) {
      $the_thumbs   = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'full');
      $the_thumb    = $the_thumbs[0];
    }
    else {
      $the_thumb    = $blog_image;
    }   
    $twitter_name   = str_replace('@', '', $the_twitter_name);
    ?>

    <meta name="robots" content="index, follow" />
    <meta name="description" content="<?php echo $the_desc; ?>">
    
    <meta name="twitter:card" value="<?php echo $the_twitter_card; ?>" />
    <meta name="twitter:site" value="@<?php echo $twitter_name; ?>" />
    <meta name="twitter:creator" value="@<?php echo $twitter_name; ?>" />

    <meta property="og:type" content="article" />
    <meta property="og:url" content="<?php echo $the_url; ?>" />
    <meta property="og:title" content="<?php echo $the_title; ?>" />
    <meta property="og:image" content="<?php echo $the_thumb; ?>" />
    <meta property="og:description" content="<?php echo $the_desc; ?>" />
    <?
  } 
  
  elseif (is_home() || is_front_page()) {
    $the_blog_url   = get_bloginfo('url');
    $the_name       = esc_attr( get_bloginfo('name')); 
    $twitter_name   = str_replace('@', '', $the_twitter_name);
    ?>

    <meta name="robots" content="index, follow" />
    <meta name="description" content="<?php echo $blog_desc; ?>">
    
    <meta name="twitter:card" value="<?php echo $the_twitter_card; ?>" />
    <meta name="twitter:site" value="@<?php echo $twitter_name; ?>" />
    <meta name="twitter:creator" value="@<?php echo $twitter_name; ?>" />

    <meta property="og:type" content="website" />
    <meta property="og:url" content="<?php echo $the_blog_url; ?>" />
    <meta property="og:title" content="<?php echo $the_name; ?>" />
    <meta property="og:image" content="<?php echo $blog_image; ?>" />
    <meta property="og:description" content="<?php echo $blog_desc; ?>" />
    <?
  }

  elseif (is_paged() || is_search() || is_author() || is_page()) { 
    ?>
    <meta name="robots" content="noindex, follow" />
    <?
  }
}
add_action('wp_head', 'add_meta_data');

Update

Man sollte vorher die richtigen Webseiten lesen. Twitter schreibt auf seiner Developer-Seite:

Twitter-Card-Tags ähneln Open Graph-Tags

… Wenn der Twitter-Card-Prozessor auf einer Seite nach Tags sucht, überprüft er zuerst die Twitter-spezifische Eigenschaft und greift, falls nicht vorhanden, auf die unterstützte Open Graph-Eigenschaft zurück.

Ich hätte mir einige Zeilen sparen können und habe die Funktion deshalb nochmal geändert.

Titelfoto: Pixabay

4 Antworten auf “WordPress: Meta Tags ohne Plugin”

  1. Toll.
    Jetzt müsste man nur noch die Zeichen replacen, wie etwa im Beispiel oben … also die “ …“

    Aber selbst große SEO-Suites ersetzen diese Zeichen nicht. Schaut komisch aus. Aber das stört wahrscheinlich eh nicht, oder?

    1. Eigentlich ist dieses Zeichen am Ende des Texts ja richtig. Dieser Excerpt ist in meinem Fall der Anfang vom Artikel und der ist ja nicht fertig. Für diesen Excerpt gibt es in WordPress ein eigenes Feld. Das heißt „Textauszug“. Das nutze ich aber nicht. Was Google und Facebook davon darstellen weiß ich nicht. Twitter nutzt nicht den gesamten Text. Die kürzen ihn und stellen von den Meta-Angaben nur den Anfang dar.

Schreibe einen Kommentar zu tinyfan Antworten abbrechen

Diese Funktion speichert ihre Daten. Mehr dazu in der Datenschutzerklärung.