Meta Descriptions in WordPress auch ohne Plugin ausgeben

Lesezeit: 2 Minuten

Wenn in Wordpress etwas einfach selbst modifiziert werden kann, verzichte ich immer gerne auf ein Plugin. Erstens kenne ich meinen eigenen Code, zweitens habe ich dann bei späteren Updates weniger Probleme. Für alle, die auch ein wenig Lust auf DIY haben, hier eine Anleitung zum Einbau von Meta Descriptions in Wordpress.

Was ist eine Meta Description?

Meta Descriptions werden in den Google-Suchergebnisse direkt unter dem Titel dargestellt. Hier einen kurzen, knackigen Text anzubieten, kann dazu führen, dass euer Blog häufiger von Google aus besucht wird.

In WordPress gibt es standardmäßig allerdings keine Meta Description für Artikel, Seiten und alle übrigen Unterseiten. Entweder, man greift auf eines der – inzwischen bewährten Plugins – zurück, oder man baut sich selbst eine Abfrage.

Die Vorbereitung

Natürlich benötigt ihr als erste gute Meta Descriptions und müsst diese in den Blog einpflegen. Dies sollte an mehreren Stellen geschehen:

  • Artikel: benutzerdefiniertes Feld meta-desc
  • Seiten: benuzterdefiniertes Feld meta-desc
  • Kategorien: Beschreibung
  • Schlagwörter: Beschreibung

Bei Kategorien und Schlagwörter lassen sich also ganz einfach die schon vorhandenen Beschreibungsfelder nutzen. Hierzu nur eine kurze Randnotiz: Da WordPress im Standard immer p-Tags um diese Beschreibungen macht und wir kein HTML in der Meta-Description haben wollen, kopiert bitte kurz diese Zeile in die functions.php (ausführliche Informationen dazu im offiziellen WordPress Codex):

/**
 * Remove <p>-Tags around category description and tag description
 */
remove_filter( 'term_description', 'wpautop' );

Bei Artikeln und Seiten lassen sich beliebig viele benutzerdefinierte Felder anlegen. Hier legt ihr das Feld meta-desc an und befüllt es.

Der Code

Wir sind nun schon so weit, dass der Code eingebaut werden kann: In der header.php sollte er im direkt im head-Bereich stehen.

<?php if ( have_posts() && is_single() or is_page() ) {
	while( have_posts() ) { the_post();
		if ( get_post_meta($post->ID, 'meta-desc', true) ) {
			$seoDescription = get_post_meta($post->ID, 'meta-desc', true);
		} elseif ( has_excerpt ) {
			$seoDescription = mb_strimwidth( get_the_excerpt(), 0, 140, '...' ); 
		} else {
			$seoDescription = mb_strimwidth( get_the_content(), 0, 140, '...' );
		}
	}
} elseif ( is_category() ) {
	$seoDescription = category_description();
} elseif ( is_tag() ) {
	$seoDescription = tag_description();	
} else { 
	$seoDescription = 'Hier mein Standard-Text';
} ?>
<meta name="description" content="<?php echo $seoDescription; ?>" />

Die ausführliche Erklärung dazu: Ganz unten in Zeile 18 wird mit meta name =“description“… der eigentliche HTML-Code definiert. Die Variable $seoDescription wird eingesetzt, das ist die Meta Description.

Darüber findet eine konditionelle Abfrage statt. Das bedeutet, WordPress checkt hier, mit was für einer Seite wir es zu tun haben und was es tun soll.

if ( have_posts() && is_single() or is_page() ) {

Bist du ein Artikel oder eine Seite, dann führe folgenden Bedingungen aus:

if ( get_post_meta($post->ID, 'meta-desc', true) ) {
	$seoDescription = get_post_meta($post->ID, 'meta-desc', true);
} elseif ( has_excerpt ) {
	$seoDescription = mb_strimwidth( get_the_excerpt(), 0, 140, '...' ); 
} else {
	$seoDescription = mb_strimwidth( get_the_content(), 0, 140, '...' );
}

Bist du ein Artikel oder eine Seite, dann prüfe, ob das Feld meta-desc gefüllt ist. Ist es das nicht, dann nimmt den Excerpt, falls er gefüllt ist, und kürze ihn auf 140 Zeichen. Sollte der Excerpt ebenfalls nicht gefüllt sein, dann nimm stattdessen die ersten 140 Zeichen vom Content.

} elseif ( is_category() ) {
	$seoDescription = category_description();
} elseif ( is_tag() ) {
	$seoDescription = tag_description();	
} else { 
	$seoDescription = 'Hier mein Standard-Text';

Bist du kein Artikel und keine Seite, dann spiele im Fall einer Kategorie oder eines Tags die Beschreibung aus. Bist du weder ein Artikel noch eine Seite noch eine Kategorieseite noch eine Schlagwortseite, dann spiele Hier mein Standard-Text aus.

Diese Abfrage lässt sich natürlich noch beliebig erweitern oder auch verkürzen. Auf jeden Fall aber gibt sie eine Vorlage, mit der ihr eure Meta Description ganz individuell an eure Bedürfnisse anpassen könnt.

Profilbild
Autorin: Friederike

Hallo, ich bin Friederike. Ich entwickle Websites und schreibe auf krempin.it darüber. Außerdem mag ich Japanische Literatur und Retro-Videospiele.