Nützlich bei der Suchmaschinenoptimierung (SEO, Search Engine Optimization) kann die Benutzung der Meta Description sein. Bei WordPress (2.9.2) kann man sich mit SEO Plugins behelfen, z.B. All in One SEO Pack, oder man versucht diese manuell mit Hilfe einer Funktion einzubauen.
Inhalte der Meta Description festlegen:
- Bei Artikeln verwendet man am besten den Auszugs-Text (Zusammenfassung) unter dem Artikeltext. Dieser wird in WordPress als post_excerpt bezeichnet. Sofern dieser befüllt ist, wird er bei der Einzelansicht des Artikels in der Description angezeigt.
- Für Kategorien ist am einfachsten der Beschreibungstext nutzbar.
- Und für einzelne Seiten legt man einfach ein benutzerdefiniertes Feld an. Dieses nennt man z.B. description. Über die WP-Funktion get_post_meta() lässt sich das Felder wieder auslesen.
Einbau der meta Description:
Zum Glück ist die manuelle Integration – wie ich finde – relativ einfach, somit kann man mit einer kleinen Funktion die Beschreibungstexte auslesen und zu Artikeln, Kategorien und auch Seiten eine passende Meta Description einfügen. Am besten fügt man seine Funktion in der Theme-zugehörigen functions.php ein. Ist im Theme-Ordner keine functions.php vorhanden legt man einfach eine functions.php Datei an in die man zwei Tags setzt:
<?php // Funktion hier einfügen... ?>
Update: Zeile 10 und 11 noch ergänzt, Allgemeine Blog-Description (aus Einstellungen/Allgemein).
Update2: Folgende Zeilen 4 bis 6 aus der Funktion gestrichen:
(is_page()) { $current_page = get_page_by_title(get_the_title()); $metadata = trim(get_post_meta($current_page->ID, 'description', true));
Abfrage nach $current_page ist nicht notwendig, da man die ID direkt über die Variable $post->ID auslesen kann, siehe Ersetzung in der Funktion Zeile 4 und 5. Zum Schluss schaut die vollständige Funktion in der functions.php ganz einfach so aus:
function myCustom_head() { global $post; $metadata = ''; if (is_page() && isset($post) && trim(get_post_meta($post->ID, 'description', true)) != "") { $metadata = trim(get_post_meta($post->ID, 'description', true)); } elseif (is_single() && has_excerpt() && isset($post)) { $metadata = trim($post->post_excerpt); } elseif (is_category() && trim(category_description()) != "") { $metadata = trim(strip_tags(category_description())); } else { $metadata = trim(strip_tags(get_bloginfo('description'))); } if (!empty($metadata)) echo '<meta name="description" content="'.$metadata.'" />'; }
Danach muss man nur noch die Funktion in der header.php an der richtigen Stelle zwischen den <head>…</head> Tags aufrufen:
[...] <?php wp_head(); ?> <?php myCustom_head(); ?> </head> [...]
Hilfe zu get_post_meta und der Beschreibung von Einzelseiten stammen teilweise auch von meshed.