Ohne Plugin eine Meta Beschreibung zu WordPress hinzufügen

WordPress verwendet standardmäßig die Meta Beschreibung nicht. Aus Suchmaschinen Optimierungsgründen (SEO) sollten wir diesen Metatag jedoch verwenden. Auch ohne irgendwelche Plugins ist dies auf sehr einfache Weise zu realisieren. Es gibt natürlich auch jede Menge an SEO Plugins für WordPress, in denen man eine individuelle Meta Beschreibung zu jedem Artikel hinzufügen kann.

In diesem Beispiel wollen wir auf ganz einfache Weise für unsere Webseite, die Artikel und unsere Seiten eben diesen Metatag hinzufügen. Mein Codebeispiel für die functions.php des Themes wäre hierfür folgendes.

// SEO Meta Beschreibung
function zoechbauer_meta_description() {
    if ( is_home() || is_front_page() ) {
        // Der Untertitel: Einstellungen - Allgemein
        echo bloginfo('description');
    } elseif ( is_single() || is_page() ) {
        if ( have_posts() ) {
            while ( have_posts() ) {
                the_post();
                // Die Kurzbeschreibung auf 160 Zeichen limitiert
                echo substr( get_the_excerpt(), 0,160 );
            }
        }
    }
    wp_reset_postdata();
}

// Zu WP_HEAD hinzufügen
function zoechbauer_add_meta_description() {
    if ( is_singular() || is_home() || is_front_page() ) { ?>
<meta name="description" content="<?php zoechbauer_meta_description(); ?>" /><?php
    }
}
add_action('wp_head', 'zoechbauer_add_meta_description');

Dieses Beispiel fügt für die Hauptseite den Untertitel, welchen wir unter Einstellungen – Allgemein hinzufügen können, ein und bei Artikel und Seiten werden automatisch die ersten 160 Zeichen des Inhaltes hinzugefügt. Für all jene, die ohnehin keine benutzerdefinierte Meta Beschreibung hinzufügen wollen, ist dies eine optimale Möglichkeit trotzdem diesen Metatag zu nutzen. Man sollte aber die ersten Zeilen des Inhaltes der Artikel und Seiten natürlich schon Suchmaschinenoptimiert schreiben, für viele wird dieser Code allerdings genügen.

Wenn wir allerdings bei so manchem Artikel oder mancher Seite die Möglichkeit haben wollen, eine eigene individuelle Metabeschreibung anstatt der Kurzform des Inhalts hinzu zu fügen, so müssen wir noch eine Metabox hinzufügen. Diese Metabox lassen wir dann bei den Artikeln und Seiten anzeigen – schreiben wir in das Textfeld eine individuelle Meta Beschreibung so wird diese eingefügt, lassen wir das Feld leer so wird die Kurzform des Inhaltes eingefügt. Wie man Metaboxen hinzufügt erfahren wir direkt im WordPress Codex. Den Code in der functions.php vom WordPress Theme ändert sich dadurch wiefolgt.

function zoechbauer_metadescription_add_meta_box() {
    $screens = array( 'post', 'page' );
    foreach ( $screens as $screen ) {
        add_meta_box(
            'zoechbauer_metadescription_id',
            __( 'Meta Beschreibung', 'zoechbauer' ),
            'zoechbauer_metadescription_meta_box_callback',
            $screen,
            'normal',
            'high'
        );
    }
}
add_action( 'add_meta_boxes', 'zoechbauer_metadescription_add_meta_box' );


function zoechbauer_metadescription_meta_box_callback( $post ) {
    wp_nonce_field( 'zoechbauer_metadescription_meta_box', 'zoechbauer_metadescription_meta_box_nonce' );
    $value = get_post_meta( $post->ID, 'zoechbauer_metadescription', true );
    ?>
    <textarea style="width: 100% !important;" id="zoechbauer_metadescription_field" name="zoechbauer_metadescription_field" rows="5" ><?php echo $value; ?></textarea><br />
    <label for="zoechbauer_metadescription_field">
        <?php _e( 'Individuelle Meta Beschreibung hinzufügen. Wenn dieses Feld leer bleibt, dann wird automatisch die Kurzform des Inhaltes verwendet.', 'zoechbauer' ); ?>
    </label><br />
    <?php
}


function zoechbauer_metadescription_save_meta_box_data( $post_id ) {
    if ( ! isset( $_POST['zoechbauer_metadescription_meta_box_nonce'] ) ) {
        return;
    }
    if ( ! wp_verify_nonce( $_POST['zoechbauer_metadescription_meta_box_nonce'], 'zoechbauer_metadescription_meta_box' ) ) {
        return;
    }
    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
        return;
    }
    if ( isset( $_POST['post_type'] ) && 'page' == $_POST['post_type'] ) {

        if ( ! current_user_can( 'edit_page', $post_id ) ) {
            return;
        }
    } else {
        if ( ! current_user_can( 'edit_post', $post_id ) ) {
            return;
        }
    }
    if ( ! isset( $_POST['zoechbauer_metadescription_field'] ) ) {
        return;
    }
    $meta_data = sanitize_text_field( $_POST['zoechbauer_metadescription_field'] );
    update_post_meta( $post_id, 'zoechbauer_metadescription', $meta_data );
}
add_action( 'save_post', 'zoechbauer_metadescription_save_meta_box_data' );


// SEO Meta Beschreibung
function zoechbauer_meta_description() {
    global $wp_query;
    $postid = $wp_query->post->ID;
    if ( is_home() || is_front_page() ) {
        // Der Untertitel: Einstellungen - Allgemein
        echo bloginfo('description');
    } elseif ( is_single() || is_page() ) {
        if ( get_post_meta ( $postid, 'zoechbauer_metadescription', true ) != '' ) {
            echo substr( get_post_meta ( $postid, 'zoechbauer_metadescription', true ), 0,160 );
            wp_reset_query();
        } else if ( have_posts() ) {
            while ( have_posts() ) {
                the_post();
                // Die Kurzbeschreibung auf 160 Zeichen limitiert
                echo substr( get_the_excerpt(), 0,160 );
            }
            wp_reset_postdata();
        }
    }
}


// Zu WP_HEAD hinzufügen
function zoechbauer_add_meta_description() {
    if ( is_singular() || is_home() || is_front_page() ) { ?>
<meta name="description" content="<?php zoechbauer_meta_description(); ?>" /><?php
    }
}
add_action('wp_head', 'zoechbauer_add_meta_description');

Mit diesem Code können wir jetzt das Textfeld Meta Beschreibung unter den Artikeln und Seiten nutzen.

Die Ausgabe im Quellcode wär jetzt.

<meta name="description" content="Ihre individuelle Meta Beschreibung des Artikels bzw. der Seite" />

Natürlich können wir auch eine individuelle Meta Beschreibung auf der Hauptseite vergeben.

// Statt dem Untertitel
echo bloginfo('description');

// die individuelle Meta Beschreibung
echo 'Das ist die individuelle Meta Beschreibung der Hauptseite';

Mit ein paar Extrazeilen an Code, kann man sich durchaus das ein oder andere Plugin sparen.




Bitte beachten Sie, dass dieser Beitrag bereits vor über einem Jahr geschrieben wurde und unter umständen nicht mehr aktuell ist.