the_excerpt ohne Anführungszeichen und Shortcodes

the_excerpt Chaos bei der Archivübersicht oder meta description
the_excerpt Chaos bei der Archivübersicht oder meta description

Der automatisch erstellte Auszug the_excerpt zeigt zwar keine Bilder an. Dafür liefert er Shortcodes und bedauerlicherweise auch die meist so beliebten Anführungszeichen im Text. Letzere sind fatal, wenn the_excerpt als meta description im HTML header genutzt wird.

Ich biete hier kurz und bündig meine Lösungen für all diese Fälle an. Magst du mehr über den Auszug erfahren oder ihn noch besser nutzen, dann verweis ich auf meinen Artikel the_excerpt die Artikelkurzfassung.

der Artikelauszug in der Archivübersicht

the_excerpt zeigt Shortcodes an
the_excerpt zeigt Shortcodes an

Du nutzt featured Images und hast so wie ich ein Bild und daneben eine Kurzfassung des Artikels stehen. Schreibst du diese Kurzfassung (= den Auszug) nicht selbst, dann erstellt dies WordPress für dich. Es werden einfach xyz Zeichen des Artikels genommen, diese umfassen aber auch die darin enthaltenen Shortcodes wie zb den galley Shortcode.
Hier siehst du nur bei auf der Suchergebnisseite den automatischen Auszug, alle anderen sind selbst geschrieben.

Zumindest am Beginn des Auszugs kannst du dies ändern:

ersetze:
<?php the_excerpt( ); ?>

mit:
<p> <?php echo  strip_tags( strip_shortcodes((get_the_excerpt()))); ?></p>

Dies hat auch den Vorteil, dass du entscheiden kannst welches HTML rund um den Text verwendet werden sollte.

the_excerpt als meta description

meta description mit viel zu vielen Anführungszeichen
meta description mit viel zu vielen Anführungszeichen

Es ist nicht einfach the_excerpt außerhalb des Loops zu holen, doch nicht jeder mag ein sogenanntes SEO Plugin verwenden und hat daher eine der vielen Möglichkeiten genutzt the_excerpt im HTML header anzuzeigen. Dennoch urgiert Google in den Webmastertools, dass zb die meta description viel zu kurz sei. Eventuell erstaunt dich das, weil du doch sicher und 100% mindestens 2-3 Sätze jeweils geschrieben hast.

Zumeist sind etwaig verwendete Anführungszeichen an einer zu kurzen MetaBeschreibung schuld. The_excerpt zeigt sie nämlich einfach an. :-)

Verwendest Du also Anführungszeichen am Beginn des Textes irgendwo oder gar im benutzerdefinierten Auszug landen die 1:1 in der meta description und sind dort einfach falsch.

D.h. der Googlebot sagt sich: Beim zweiten Anführungszeichen ist die meta description aus und liest nicht mehr weiter.

Anführungszeichen in the_excerpt als meta description verhindern geht so:

<?php echo  htmlentities(strip_tags(get_the_excerpt()));  ?>" />

Htmlentities wandelt jedes Anführungszeichen in ein Entity um und somit kann dies der Googlebot lesen und akzeptiert es nicht mehr als das Ende der meta desciption. strip tags filtert alles HTML aus diesem Auszug raus und alles ist wieder ok.

Hier ist auch die Anordnung von htmlentities und strip tags wichtig.

6

6 Beiträge zu “the_excerpt ohne Anführungszeichen und Shortcodes

  1. Kommentar Autor
    Jan
    Kommentar

    Man kann auch das Plugin „Advanced Excerpt“ einsetzen und hat dort viele Möglichkeiten etwas einzustellen. Bei Bedarf kann the_excerpt() dann auch durch the_advanced_excerpt() im Theme ersetzt werden. Aber üblicherweise ziehe ich natürlich auch die Lösung ohne Plugin vor ;-)

  2. Kommentar Autor
    Micha
    Kommentar

    Ich setze bei mir ein Template von Perun ein – hier wurde nicht mit the_excerpt() gearbeitet sondern mit the_content(). In diesem Zusammenhang muss ich dann aber in meinen Posts den more-Befehl einfügen. Vergesse ich dies wird auf den Kategorie-Seiten oder auf der Blog-Seite der komplette Artikel angezeigt, was ja bekanntlich für duplicate content sorgen kann.

    Daher bin ich gerade am überlegen, ob ich den Befehl ersetzte durch the_excerpt() und da kommt mir die Anleitung hier gerade recht. Was ich nicht ganz verstehe – wieso gibt es von WordPress aus überhaupt diese Möglichkeit mit dem Read-More Link? Ich sehe da eigentlich in keinem Fall Vorteile…

    Hat jemand hier vielleicht eine Idee wieso es diesen Mechanismus gibt?

  3. Kommentar Autor
    manuel
    Kommentar

    Eine weitere Alternative um das Problem mit den Anführungszeichen zu umgehen:

    echo esc_attr(get_the_excerpt());

  4. Kommentar Autor
    jack
    Kommentar

    Hallo Monika, an anderer Stelle hier im Blog hast Du eine Lösung mit einem Code-Schnipsel (function mtsoutsideloop_the_excerpt…) in der functions.php präsentiert, wo entweder Text aus dem Beitrag (in einer bestimmten, einzustellenden Wortanzahl), oder eben der selbstgeschriebene Auszug, sofern dieser vorhanden ist, automatisch in den Meta-Tag eingefügt werden – da habe ich das Problem mit den Anführungszeichen aber jetzt auch, sofern ich einen „echten Auszug“ selber schreibe (in dem Feld unterhalb des Beitrag-Text-Feldes). Gäbe es dafür auch irgendwie eine Lösung „htmlentities, strip_tags“ in den Code-Schnipsel einzubauen…? Liebe Grüße, Jack

  5. Kommentar Autor
    Monika
    Kommentar

    hi jack, wenn du den Auszug selbst schreibst, verzichte doch einfach auf die Anführungszeichen :-)