Den Titel eines Beitrags oder einer Seite in den Inhalt einfügen

WordPress 5.8 wird in etwas über zwei Wochen veröffentlicht. Das vermutlich größte neue Feature ist die Einführung von Full-Site-Eiditing (FSE). Das ermöglicht es euch, die gesamte Website mit dem Block-Editor zu bearbeiten. Allerdings funktioniert das nur, wenn ihr auch ein Theme verwendet, das für FSE vorbereitet wurde. Es gibt aber ein paar neue Blöcke, die ich auch mit eurem aktuellen Theme verwendetn könnt. In einem neuen Projekt, an dem ich kürzlich gearbeitet habe, konnte ich einen dieser neuen Blöcke einsetzen (mit dem Gutenberg Plugin).

Der „Beitragstitel“ („Post Title“) Block

Einer dieser neuen Blöcke erlaubt es euch, den Beitragstitel in den Inhalt einzufügen. Obwohl er „Beitragstitel“ heißt, funktioniert er auch mit Seiten und allen anderen Inhaltstypen.

Nehmen wir also an, ihr möchtet den Beitragstitel in einem Spalten-Block, neben einem Medien-Block einfügen, dann fügt ihn einfach an der passenden Stelle ein:

Der „Beitragstitel“ Block mit der Auswahl der Überschriftsebene

Wie ihr in dem Screenshot sehen könnt, verwendet der Block als Standard eine Überschriftsebene H2, die ihr aber zu einer H1 ändern könnt, wenn ihr das wollt. Der Inhalt des Blocks kann nicht geändert werden. Er entspricht immer genau dem Titel des Beitrags.

Verbergen des Originaltitels

Da dieser Block den Titel in den Inhalt der Seite einfügt, werdet ihr dann vermutlich das Ergebnis haben, dass der Titel im Frontend doppelt ausgegeben wird. Wie können wir also möglichst einfach den Originaltitel verbergen? In den meisten Theme kann man einfach überprüfen, ob der Inhalt des Beitrags oder der Seite einen solchen Block enthält und dann den Originaltitel nicht ausgeben. Wie es genau funktioniert hängt sehr stark von eurem Child-Theme ab. In TwentyTwenty wird in der Datei twentytwenty-child/template-parts/entry-header.php der Titel dann wie folgt ausgegeben:

if ( ! has_block( 'post-title' ) ) {
	if ( is_singular() ) {
		the_title( '<h1 class="entry-title">', '</h1>' );
	} else {
		the_title( '<h2 class="entry-title heading-size-1"><a href="' . esc_url( get_permalink() ) . '">', '</a></h2>' );
	}
}

Wir verschachteln also die Ausgabe des Titel in eine has_block( 'post-title' ) Bedingung. Da es ein Core-Block ist, müsst ihr hier es auch nicht mit einem Präfix wie core/post-title verwenden. Das Ergebnis sieht so alleine vielleicht noch nicht perfekt aus, aber ihr versteht nun sicherlich, wie der Ansatz funktionieren würde.

Fazit

Selbst wenn ihr also bei Veröffentlichung von WordPress 5.8 noch nicht auf ein FSE Theme umsteigen möchtet, könnt ihr dennoch ein paar neue Blöcke nutzen. Vielleicht findet ihr ja einen, der euch in einem (neuen) Projekt helfen kann und ihr braucht vielleicht ein zusätzliches Block-Plugin weniger.

Falls ihr die Funktion has_block noch nicht kanntet, dann gibt es vielleicht noch ein paar andere Funktionen, die ihr bisher noch nicht verwendet habt. Mark Wilkinson hat kürzlich einen Twitter-Thread gestartet, in dem er einige Funktionen vorstellt und die erste war zufälligerweise die has_block Funktion.

Veröffentlicht von

Bernhard ist fest angestellter Webentwickler, entwickelt in seiner Freizeit Plugins, schreibt in seinem Blog über WordPress und andere Themen, treibt sich gerne bei den WP Meetups in Berlin und Potsdam herum und läuft nach Feierabend den ein oder anderen Halbmarathon.

Schreibe einen Kommentar

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