Im WordPress Astra Theme den Blog Entry-Title anpassen per Filter

Gibt es eine elegante Methode, um die Verlinkungen aus den Titeln der Beiträge in der Blog-Ansicht des Astra Themes zu löschen? Ja, mittels einer Filter-Funktion kann man den Permalink entfernen. Die Vorgehensweise erläutere ich euch in diesem Artikel.

Auf einer mit dem Astra-Theme erstellten WordPress Website dient die Blog-Übersicht als eine Art News-Rubrik. Hierbei sollen sämtliche Beiträge in der Blog-Übersicht kontinuierlich als ganzer Post aufgeführt werden und der vollständige Text jedes Beitrags angezeigt werden. Der Aufruf der einzelnen Beiträge für sich ist hier nicht gewünscht. Im Gegensatz zur Darstellung mit vollständigem Text wird bei der Ansicht der Posts ja häufig nur ein Vorschau-Auszug verwendet, d.h. mit einer Option, den Rest des Beitrags durch Klick auf den Weiterlesen-Tag oder Textauszug (Excerpt) zu lesen.

Jedoch ist dies nicht die gewünschte Darstellung. Es soll hier im Beispiel ja jeder Beitrag stets in seiner vollen Länge angezeigt werden. Bedauerlicherweise sind die Beitragstitel dann nach wie vor mit den Links zu den jeweiligen Beiträgen versehen. Diese Links erweisen sich als überflüssig und sollen daher entfernt oder gelöscht werden. Im aktuellen Zustand lautet der Quellcode für den Beitragstitel „entry-title“ wie folgt:

<h2 class="entry-title" itemprop="headline">
<a href="https://www.meinsuperdupertestblog.de/cms3/beispielbeitrag/" rel="bookmark">Beispielbeitrag</a>
</h2>

Je nach gewählter Permalink-Einstellung kann der Link anders aussehen, inklusive möglicher Tags, Monatsangaben, Namen oder numerischer Kombinationen. Aber darum geht es nicht. Hier liegt der Fokus hier eindeutig nur darauf, den <a href…> Link zu eliminieren.

Die Ausgabe des Beitragstitels im Astra Theme ändern

Mein Wunsch im Astra Theme besteht also darin, dass die Blog-Beiträge auf der Blog-Übersichtsseite nicht mehr verlinkt sind. Hier bietet sich die Möglichkeit an, eine Filter-Funktion in WordPress zu nutzen und diese in die „functions.php“ einzufügen. Am empfehlenswertesten ist es, dafür auch ein Child-Theme einzurichten. Auf diese Weise bleiben die Anpassungen nach Updates des Haupt-Themes unberührt.

So sieht der Code für die function.php Datei aus:

add_filter('astra_the_post_title_before', 'call_back');

function call_back() {
    return '<h2 class="entry-title" itemprop="headline">' . get_the_title() . '</h2>';
}

Mit add_filter('astra_the_post_title_before', 'call_back'); wird ein Filter auf den Hook astra_the_post_title_before angewendet. Dieser Hook ermöglicht es, den Beitragstitel vor seiner Ausgabe anzupassen. Die Funktion call_back() wird definiert und als Callback für den Filter verwendet. In dieser Funktion wird der Beitragstitel innerhalb eines h2-Elements mit der Klasse „entry-title“ und dem Attribut „itemprop“=“headline“ eingefügt. Wer möchte, kann das „itemprop=“headline“ aber auch entfernen. Ebenso besteht die Möglichkeit, im add_filter-Code aus der „h2“ Überschrift eine „h1“ oder „h3“ Überschrift zu gestalten oder noch weitere HTML-Formatierungen anzugeben – ganz nach individuellem Geschmack.

Der obige Code ändert die Formatierung des Beitragstitels im HTML-Ausgabe nach meinen Vorgaben. Nach der Änderung ist der Link entfernt und der HTML-Quellcode sieht so aus:

<h2 class="entry-title" itemprop="headline">Beispielbeitrag</h2>

Der Code ersetzt also die standardmäßige Darstellung des Beitragstitels im Astra Theme auf der Blog-Übersichtsseite durch ein h2-Element mit den gewünschten Klassen und Attributen. Dies kann nützlich sein, um das Styling der Beitragstitel anzupassen oder zusätzliche HTML-Elemente hinzuzufügen.

Filter zum Entfernen von Links aus Featured Images auf der Blog-Seite

Besteht der Wunsch, ebenfalls die Verlinkung aus dem Vorschaubild (Featured Image) der Blog-Beiträge zu entfernen? Auch hierfür existiert ein kurzer Code, der in die Datei „functions.php“ eingefügt werden kann:

 
function astra_remove_link_before( $markup ) {
    $markup = __return_empty_string();
    return $markup;
}
 
function astra_remove_link_after( $markup ) {
    $markup = __return_empty_string();
    return $markup;
}

add_filter( 'astra_blog_post_featured_image_link_before', 'astra_remove_link_before' );
add_filter( 'astra_blog_post_featured_image_link_after', 'astra_remove_link_after' );

Custom Code Snippets » Blog Filters for Astra Theme

You want to remove the link from the post titles at Astra Theme? Currently, there’s no default option to do this. However, this is achievable by using some filters and actions with PHP code in WordPress. Check out the solutions above!

How to remove link from Blog Posts on Blog page at WordPress Astra Theme?
How to remove link from Featured Images on Blog page at WordPress Astra Theme?
Dokumentation/ Knowledge Base Astra Theme: https://wpastra.com/docs/

Schreibe einen Kommentar