Datenfelder mit Markup vor dem (auto) Excerpt in einem Query Loop-Block anzeigen (WordPress Site Editing)

804 5769
Foto von Gabriele Lässer

Wenn es darum geht, Datenfelder vor einem Textauszug in WordPress abzubilden (z.B um Eventdatümer gleich in der Übersicht anzuzeigen), stolpert man oft über den Filter get_the_excerpt. Potentiell ist er auch bei Verwendung des Query Loop Blocks immer noch anwendbar, wird aber auch immer noch etwaiges Markup aus dem entfernen, was man vor oder nach dem Excerpt abbilden möchte.

Anders verhält es sich, wenn man stattdessen den Block-Output filtert. Im nachfolgenden Beispiel gibt es einen Post Type event, eine eventkategorie und eine taxonomy für den courseplace. Ein Post Type Archiv gibt es nicht, und auch kein Archiv für die Veranstaltungsorte, daher kommt der Filter nur in der Taxonomy „eventcategory“ zur Anwendung.

function display_custom_event_fields_archive( $content, $parsed_block, $block ) {
	if ( !is_tax( 'eventcategory' ) ) return $content;
	$before = '';
	$post_id = get_the_ID();
	$startdate 	= get_post_meta($post_id, 'myplugins_startdate', true); 
	$enddate 	= get_post_meta($post_id, 'myplugins_enddate', true); 

	$dates = '';

	if ( $startdate ) { $dates .= sprintf( '<label>%1$s: </label>%2$s<br />', esc_html__( 'Starts' , 'myplugins-textdomain' ), $startdate ); }
	if ( $enddate ) { $dates .= sprintf( '<label>%1$s: </label>%2$s<br />', esc_html__( 'Ends ' , 'myplugins-textdomain' ) , $enddate ); }

	if ( $dates != ''  ) $before .= sprintf( '<div class="eventdata">%s</div>', $dates );	
	
	return $before . $content;
}
add_filter( 'render_block_core/post-excerpt', 'display_course_datafields_archive', 10, 3, );

Das ist ein einfaches Beispiel, mit dem vor dem Excerpt ein div mit den Event-Daten angezeigt wird, die auch ihre Zeilenumbrüche behalten.

Bitte Kommentarfunktion nicht für Supportanfragen nutzen. Dem kann hier nicht entsprochen werden. Die Angabe einer E-Mail-Adresse und eines Namens ist nicht erforderlich. Einen (Spitz)-Namen zu nennen wäre aber doch nett.

Schreibe einen Kommentar

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

Hinweis: Sowohl angegebener Name als auch E-Mail-Adresse (beides ist optional, dafür werden alle Kommentare vor Veröffentlichung geprüft) werden dauerhaft gespeichert. Du kannst jeder Zeit die Löschung Deiner Daten oder / und Kommentare einfordern, direkt über dieses Formular (wird nicht veröffentlicht, und im Anschluss gelöscht), und ich werde das umgehend erledigen. – Mit hinterlassenen Kommentaren hinterlegte IP-Adressen werden nach zwei Monaten automatisch gelöscht

publicly queryable