• Gelöst Jonas

    (@elbsegler)


    Hallo liebe Community,

    ich stehe auf dem Schlauch und auch das große WWW hilft mir gerade nicht weiter. Vielleicht weiß jemand von euch einen Tipp.

    Seit einiger Zeit nutze ich in meinen Blogs einen kleinen php-Snippet um den Textauszug eines Posts/Beitrag anklickbar zu machen. Das von mir gewünschte Resultat seht ihr z.B. auf tageschau.de oder spiegel.de.

    Das Snippet lautete wie folgt:

    function clickable_excerpt( $excerpt ) {
    	return '<a href="'. get_the_permalink() .'" class="excerpt">'. $excerpt .'</a>';
    }
    add_filter( 'get_the_excerpt', 'clickable_excerpt' );

    Seit WP 6.3 oder 6.3.1 funktioniert es nicht mehr.
    Vielleicht weiß jemand von euch einen Tipp, was jetzt eine Alternative wäre?
    Danke

    Jonas

    Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]

Ansicht von 3 Antworten – 1 bis 3 (von insgesamt 3)
  • Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Das Problem lässt sich einfach nachvollziehen. Bei älteren, nicht block-basierten Themes wird mit deinem Code der Text des Textauszugs mit dem Beitrag verlinkt. In neueren, block-basierten Themes, in denen der Auszug mit dem Block „Textauszug“ (engl. Excerpt) ausgegeben wird, ist der Text nicht verlinkt. Das Problem ist, dass im Block Textauszug HTML-Tags herausgefiltert werden, was sich auch nicht mit einer eigenen, per Hook get_the_excerpt eingebundenen Funktion lösen lässt.

    Wenn du statt deiner Funktion clickable_excerpt() folgende Funktion verwendest, siehst du, dass der Filter grundsätzlich angewendet wird:

    function filter_function_name( $excerpt ) {
    	return 'Kurzfassung: ' . $excerpt;
      }

    Ale Ergebnis wird im Frontend in der Beitragsübersicht „Kurzfassung: “ vor den Text des Auszugs gesetzt:

    <p class="wp-block-post-excerpt__excerpt">Kurzfassung: Der Kurier des Zaren reitet quer durch Russland, um einen Auftrag zu erfüllen. Dabei erlebt er verschiedene Abenteuer. </p>

    Ergänzen wir das nun mit einem HTML-Tag (um bei einem einfachen Beispiel zu bleiben, verwenden ich das Tag <h1>), sehen wir, dass nur der Inhalt ausgegeben wird, das Tag aber entfernt wird:

    function filter_function_name( $excerpt ) {
    	return '<h1>Kurzfassung:</h2> ' . $excerpt;
      }

    … ergibt den gleichen Inhalt, wie der Code weiter oben. Vom <h1>-Tag ist im Quellcode nichts zu sehen:

    <p class="wp-block-post-excerpt__excerpt">Kurzfassung: Der Kurier des Zaren reitet quer durch Russland, um einen Auftrag zu erfüllen. Dabei erlebt er verschiedene Abenteuer. </p>

    Ein ähnliches Problem wurde in verschiedenen Bug-Tickets bereits gemeldet: [Block] Post Excerpt – Allow inline HTML tags #49449, Post excerpt block removes added HTML in excerpt via block tools control #54129, usw.

    Im Moment kann ich dir nicht viel dazu raten, außer eine Behebung des Fehlers abzuwarten.

    Thread-Starter Jonas

    (@elbsegler)

    Vielen Dank für die super interessante und gründliche Antwort. Und auch deine Geschwindigkeit ist beeindruckend!
    Ich warte also ab und setze den Punkt hier auf „gelöst“.

    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Danke für dein Feedback.

    Solche Sachen sind eine frustrierende Erfahrung. Der Block-Editor ist eine komplexe Software, in der noch einige Fehler auf eine Korrektur warten. Für rasche Lösungen fehlen oft die Ressourcen.

    Ich drücke die Daumen, dass sich schnell eine Lösung findet.

Ansicht von 3 Antworten – 1 bis 3 (von insgesamt 3)
  • Das Thema „Clickable Excerpt“ ist für neue Antworten geschlossen.