Coding | Hooks und Filter

WordPress: Weiterlesen-Link für Custom Excerpt

books 1245690 1920

Archivseiten wie die Blogstartseite, Kategorien oder Beiträge zu einem bestimmten Schlüsselwort, können in WordPress unterschiedlich gestaltet sein. Die Darstellung umfasst im Wesentlichen vier Varianten.

  • Variante 1: vollständige Darstellung von Beiträgen (sofern kein Weiterlesen-Tag verwendet wird)
  • Variante 2: manuelle Bestimmung der Stelle, an welcher der Textauszug endet durch das Weiterlesen-Tag
  • Variante 3: automatisch generierter Auszug, der einen Artikel in Archiven nach einer definierten Anzahl von Wörtern abschneidet und alle Tags entfernt
  • Variante 4: benutzerdefinierter Auszug, das ist der Inhalt des Feldes Auzug im Beitrags-Bearbeitungsbereich in dem auch HTML verwendet werden kann.

Benutzerdefinierter Weiterlesen-Link für den Auto-Excerpt

function flxo_the_read_more_link() {
	return sprintf( '<p class="link-more"><a href="%1$s" class="more-link">%2$s</a></p>',
		esc_url( get_permalink( get_the_ID() ) ),
		sprintf( __( '%1$s<span class="screen-reader-text"> "%2$s"</span>', 'flexyosity' ), __( 'read more', 'flexyosity' ), get_the_title( get_the_ID() ) )
	);
}

function flxo_get_readmore_link( $link ) {
	if ( is_admin() ) {
		return $link;
	}
	return flxo_the_read_more_link();
}
add_filter( 'excerpt_more', 'flxo_get_readmore_link' );

Wird Variante 3 eingesetzt, kommt bei Beiträgen in denen das Feld Azzug mit Inhalt befüllt wird, automatisch Variante 4 ebenfalls zu tragen. Allerdings fehlt diesen der Weiterlesen-Link. flxo_custom_excerpt_read_more schließt auch benutzerdefinierte Auszüge mit einem Weiterlesen-Links ab,

function flxo_custom_excerpt_read_more( $excerpt ) {
	$output = $excerpt;
	
	if ( has_excerpt() ) {
		$output .= flxo_the_read_more_link();
	}
	
	return $output;
}
add_filter( 'wp_trim_excerpt', 'flxo_custom_excerpt_read_more' );

weiter schmökern

Schreibe einen Kommentar

Bitte Kommentarfunktion nicht für Supportanfragen nutzen. Dem kann hier nicht entsprochen werden.

Deine E-Mail-Adresse wird nicht veröffentlicht.