Excerpt ohne "Weiterlesen" in Meta

  • Hallo zusammen,

    für die dynamische Description (siehe hier: http://www.perun.net/2011/04/05/wor…ta-description/) und für den Facebook-Graph nutze ich jeweils das excerpt.

    Ebenso habe ich für das Excerpt in der functions.php den "read more"-Link ergänzt.

    Code
    function new_excerpt_more( $more ) {
        return ' <a class="read-more" href="'. get_permalink( get_the_ID() ) . '">' . __('Read More', 'your-text-domain') . '</a>';
    }
    add_filter( 'excerpt_more', 'new_excerpt_more' );


    Nun ergibt sich folgendes Problem:

    Der more-Link wird beim automatischen Ziehen des excerpts mit in die Metadaten geschrieben und zwar samt HTML (was laut perun nicht passieren dürfte, da beim eingefügten Code the_excerpt_rss(20,2) "die 2 besagt, dass alle html-Tags entfernt und das kaufmännische und (&) in &amp; umgewandelt wird):

    Code
    <meta name="description" content="TEXT (...) <a class="more-link" href="#">Weiterlesen</a>" />
    Code
    <meta property="og:description" content="TEXT (...) <a class="more-link" href="#">Weiterlesen </a>"/>

    Das wiederum führt dazu, dass am oberen Ende jeder Seite das hier zu sehen ist:

    Weiterlesen " /> Weiterlesen "/>

    Gibt es eine Möglichkeit, den "read more"-Link nur im body, nicht aber im head ausgeben zu lassen? Oder irgend eine andere Idee, wie ich den unerwünschten Text von der Seite weg bekomme?

    DANKE für eure Unterstützung.
    Die Lolle

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Das Beispiel bei Perun bezieht sich auf Version 1.2 des the_excerpt_rss() Tags. Die aktuelle Version 1.5 erlaubt keine Parameter mehr.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Danke für den Hinweis. Wie lässt sich das oben geschilderte Problem dann lösen?

  • Das ist eine sehr gute Frage. Hast Du schon mal an einen Filter gedacht?

    PHP
    function mein_rss_post_excerpt( $excerpt ) {
        // mach was mit dem $excerpt
        return $excerpt;
    }
    add_filter( 'the_excerpt_rss', 'mein_rss_post_excerpt' );

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Das hört sich gut. Leider reichen meine Programmierkenntnisse nicht so weit.

    Wie muss eine Funktion aussehen, die folgende Bedingungen erfüllt:
    - Wenn excerpt im Head -> dann ignoriere read-more-link Funktion
    - Wenn excerpt im Body -> dann nutze read-more-link Funktion

    Oder aber andersherum die read-more-link Funktion dahingehend einschränken, dass sie nur im Body greift. Damit müsste ich das excerpt an sich nicht verändern.

  • Das geht in dieser Form überhaupt nicht. The_excerpt_rss greift bei Feeds. The_excerpt greift immer. Wenn dann muss man eine eigene Funktion schreiben, die man dann in der header.php anstatt the_excerpt() einfügt. Hier im Forum sind einige die das Schreiben können.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Verstehe. Hatte gehofft, dass es da schon was dazu gibt.

    Mein Workaround sieht nun so aus - falls jemand anderes vor demselben Problem steht: Ich habe den more-Link aus der functions.php rausgenommen und den Link stattdessen direkt in die archive.php reingeschrieben. Ist zwar nicht meine präferierte Lösung, aber funktioniert.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!