Seit langer Zeit hat WordPress die Möglichkeit, die Länge des Inhalts auf der Beitragsseite anzuzeigen, indem man das „Mehr“-Tag hinzufügt. Die Verwendung des Bereichs bis zu diesem Tag ist einfach über get_the_content möglich, aber was ist mit dem Rest?

Spezifischer, was ist mit dem Inhalt nach dem „Mehr“-Tag? Hier kommt die Funktion get_extended ins Spiel. Sie gibt jedoch nicht nur den Inhalt nach dem „Mehr“-Tag zurück, sondern ein Array mit drei Teilen:

  • main – Den Inhalt vor dem „Mehr“-Tag (also den Textauszug wie bei get_the_content).
  • extended – Der Inhalt nach dem „Mehr“-Tag.
  • more_text – Der individuelle Text des „Mehr“-Tags, sofern vorhanden. Andernfalls eine leere Zeichenfolge.

Wenn du demnach den Text nach dem „Mehr“-Tag möchtest, brauchst du get_extended( $post->post_content )['extended'].

Für Beiträge mit dem Block-Editor bist du aber hier noch nicht am Ende.
Zum einen erhält der Inhalt unter extended auch den „Mehr“-Block selbst (<!-- /wp:more -->).
Zum anderen ist der Inhalt nicht für die direkte Ausgabe vorbereitet. Hier musst du den Inhalt noch durch ein do_blocks jagen.

So sieht es demnach aus, wenn du nur den Teil nach dem „Mehr“-Tag von einem Beitrag ausgeben möchtest, der mit dem Block-Editor geschrieben wurde (ich habe auch noch die empfohlene Maskierung via wp_kses_post hinzugefügt):

echo wp_kses_post( do_blocks( str_replace( '<!-- /wp:more -->', '', get_extended( $post->post_content )['extended'] ) ) );Code-Sprache: PHP (php)

Ein letzter Hinweis an dieser Stelle: Gibt es keinen „Mehr“-Tag, wird der gesamte Beitragsinhalt im Array innerhalb von main zurückgegeben und der Bereich extended ist leer.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Um auf deiner eigenen Website zu antworten, gib die URL deiner Antwort ein, die einen Link zur Permalink-URL dieses Beitrags enthalten sollte. Deine Antwort wird dann (möglicherweise nach der Moderation) auf dieser Seite erscheinen. Möchtest du deine Antwort aktualisieren oder entfernen? Aktualisiere oder lösche deinen Beitrag und gib die URL deines Beitrags noch einmal ein. (Mehr über die Funktion von Webmentions erfahren)