Datum und Autor in jedem beliebigen WordPress Theme bearbeiten oder löschen. So passt Du die Metadaten Deiner Beiträge an.
Die Daten zwischen dem Titel Deines Beitrages und dem eigentlichen Inhalt, werden als Metadaten bezeichnet, weil sie erweiterte Informationen zu Deinem Beitrag bieten. So erscheint dort meist das Datum der Erstellung Deines Beitrages, der Autor, ein Hinweis zur Kommentarfunktion und ein Link zur Bearbeitung Deines Artikels. Oft sind diese Metadaten unerwünscht, weil beispielsweise das Erstellungsdatum den Artikel veraltet erscheinen lassen.
Ausblenden durch CSS
Nun gibt es viele Hinweise im Internet, die Dir zeigen, wie Du die Meatdaten ausblenden kannst. In der Regel wird man Dir empfehlen, sie mittels CSS zu verstecken. Das ist sicher nur eine Schummellösung, denn die Daten sind noch da. Sie können durchaus auch in den Suchergebnissen angezeigt werden. Du versteckst sie schliesslich nur mittels CSS, das nur für das Design Deiner Seite zuständig ist. Davon abgesehen könntest Du die Metadaten so nicht ändern. Vielleicht magst Du den Autor oder den Kommentarhinweis behalten und nur etwas anpassen. Die Ausblendung mittels CSS ist also nur in seltenen Fällen zu empfehlen.
Löschen oder Bearbeiten der Metadaten
Was Du mitbringen solltest
Wir werden in diesem Artikel gemeinsam die Metadaten verändern oder wirklich löschen. Es ist nicht zwingend erforderlich, aber hilfreich, wenn Dir PHP, HTML und CSS nicht ganz fremd sind. Auch solltest Du einen Zugriff auf Deine Dateien haben. Der besteht zwar auch über das Administrationsinterface Deiner WordPressinstallation, doch birgt dieser Zugriff Risiken. Denn ein Fehler in Deinen PHP-Dateien reicht, um Dich mit einem White Screen zu konfrontieren. Spätestens an diesem Punkt musst Du ohnehin auf die Dateiebene wechseln.
Du benötigst also ein Programm um auf Deinen Webspace zuzugreifen. Geeignet sind ssh, sFTP oder FTP. Zur Änderung der Dateien benötigst Du einen Editor. Unter Linux/Unix/MacOS findest Du den Editor vim. Windows bietet Dir den Editor Notepad.
Genesis
Du verwendest das Framework Genesis? Na dann gibt es Grund zur Freude. Die Anpassung Deiner Beitrags Metadaten ist unter Genesis sehr einfach. Wie das geht, erfährst Du unter: Autor und Datum im Framework Genesis ändern
Hilfe
Noch ein Wort zur hier vorgestellten Änderung Deiner Beitrags Metadaten. Das Vorgehen ist exemplarisch für jedes Theme. Allerdings sind Themes sehr unterschiedlich. Solltest Du das Gefühl haben, mit der Anpassung Deines Themes überfordert zu sein, kannst Du mich damit beauftragen. Den Kontakt findest Du im Footer dieser Seite.
Metadaten in Deinem Theme finden
Im ersten Schritt geht es darum dass wir in Deinem Theme die Stelle finden, an der die Metadaten erstellt werden. Ich zeige Dir das Vorgehen exemplarisch an zwei verschiedenen Themes, CatchResponsive und Twenty Seventeen.
Metadaten im Catch-Theme anpassen
Wir suchen im Verzeichnis Deines Themes nach der Datei “single.php” und öffnen sie mit unserem Editor. Darin findet sich der Hinweis, dass der Inhalt der Beiträge durch das Template content-single.php ausgegeben wird.
Also öffnen wir die im selben Verzeichnis liegende Datei content-single.php und finden folgenden Auszug:
<header class="entry-header">
<h1 class="entry-title"><?php the_title(); ?></h1>
<?php catchresponsive_entry_meta(); ?>
</header>
Ein paar HTML-Tags und zwei PHP Funktionen. Die Funktion “the_title()” gibt den Titel Deines Beitrages aus. Die Funktion “catchresponsive_entry_meta()” liefert die gesuchten Metadaten für Deinen Beitrag. Die Metadaten werden also in der Funktion catchresponsive_entry_meta() erzeugt.
Template-Datei überschreiben
An dieser Stelle gibt es zwei Möglichkeiten, die Metadaten Deines Themes zu ändern. Du kannst einfach die Template-Datei content-single.php in das Verzeichnis Deines Child-Themes kopieren und dort anpassen. Beispielsweise den Aufruf der Funktion catchresponsive_entry_meta() löschen und durch eine eigene Funktion ersetzen. Du könntest die Zeile auch nur entfernen, wenn Du die Informationen zum Autor und Erstellungsdatum einfach entfernt haben möchtest.
Funktion überschreiben
Du könntest aber auch der Funktion folgen und diese überschreiben.
Dann gilt es, die Funktion zu finden. Dafür kannst Du unter Linux/Unix/MacOS “grep” nutzen:
grep -r catchresponsive_entry_meta *
Falls Du an dieser Stelle nicht verstehst, was wir hier machen, reicht es zu wissen, dass Du in den Dateien Deines Themes nach der Zeichenkette “catchresponsive_entry_meta” suchen musst. Du wirst sicher ein Tool finden, das Dir diesen Schritt ermöglicht.
Die Ausgabe von Grep:
inc/catchresponsive-core.php: function catchresponsive_entry_meta()
Die Funktion befindet sich also in der Datei catchresponsive-core.php. Wir öffnen diese Datei und erhalten den Inhalt der Funktion, in der die Metadaten erzeugt werden:
if ( ! function_exists( 'catchresponsive_entry_meta' ) ) :
/**
* Prints HTML with meta information for the current post-date/time and author.
*
* @since Catch Responsive 1.0
*/
function catchresponsive_entry_meta() {
echo '<p class="entry-meta">';
$time_string = '<time class="entry-date published updated" datetime="%1$s">%2$s</time>';
if ( get_the_time( 'U' ) !== get_the_modified_time( 'U' ) ) {
$time_string = '<time class="entry-date published" datetime="%1$s">%2$s</time><time class="updated" datetime="%3$s">%4$s</time>';
}
$time_string = sprintf( $time_string,
esc_attr( get_the_date( 'c' ) ),
esc_html( get_the_date() ),
esc_attr( get_the_modified_date( 'c' ) ),
esc_html( get_the_modified_date() )
);
printf( '<span class="posted-on">%1$s<a href="%2$s" rel="bookmark">%3$s</a></span>',
sprintf( __( '<span class="screen-reader-text">Posted on</span>', 'catch-responsive' ) ),
esc_url( get_permalink() ),
$time_string
);
if ( is_singular() || is_multi_author() ) {
printf( '<span class="byline"><span class="author vcard">%1$s<a class="url fn n" href="%2$s">%3$s</a></span></span>',
sprintf( __( '<span class="screen-reader-text">Author</span>', 'catch-responsive' ) ),
esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
esc_html( get_the_author() )
);
}
if ( ! post_password_required() && ( comments_open() || '0' != get_comments_number() ) ) {
echo '<span class="comments-link">';
comments_popup_link( esc_html__( 'Leave a comment', 'catch-responsive' ), esc_html__( '1 Comment', 'catch-responsive' ), esc_html__( '% Comments', 'catch-responsive' ) );
echo '</span>';
}
edit_post_link( esc_html__( 'Edit', 'catch-responsive' ), '<span class="edit-link">', '</span>' );
echo '</p><!-- .entry-meta -->';
}
endif; //catchresponsive_entry_meta
Ziemlich lang, aber grundsätzlich leicht zu verstehen, wenn Du Dich darauf einlässt. Grund zur Freude bietet die IF-Abfrage, in welche die Funktion eingeschlossen ist. Ich komme gleich darauf zurück.
Solltest Du kein Child-Theme verwenden, kannst Du die Funktion und damit die Ausgabe an dieser Stelle ändern und bist fertig. Allerdings würde ich Dir dringend empfehlen, ein Child-Theme zu erstellen. Denn wenn Du die Funktion hier änderst, würden bei der nächsten Aktualisierung Deines Themes Deine Änderungen verloren gehen. Solltest Du noch kein Child-Theme erstellt haben, erfährst Du hier, wie Du Dir eines anlegst.
Nachdem Du Dein Child-Theme erstellt hast, kannst Du die Funktion, ohne der einrahmenden IF-Abfrage in die Datei functions.php Deines Child-Themes kopieren.
Funktion überschreiben
Um zu verstehen, wie wir die Funktion jetzt überschreiben, musst Du wissen, dass in Deinem Child-Theme bereits alle Funktionen Deines Parent-Themes bekannt sind. Allerdings werden sie nach den Funktionen Deines Child-Themes geladen und dementsprechend nach denen Deines Child-Themes ausgeführt. Wurden in dem Theme, das Du anpassen möchtest, keine Massnahmen zum überschreiben getroffen, werden gleich lautende Funktionen in Deinem Child-Theme nicht ausgeführt.
Bietet Dein Parent Theme keine Möglichkeiten, die Funktion zu entfernen oder zu überschreiben, kannst Du sie mittels Vergabe einer höheren Priorität überschreiben. Damit teilst DU mit, dass Deine Funktion später ausgeführt wird.
In unserem Fall könnte das folgend aussehen:
add_action('init','catchresponsive_entry_meta', 15); function catchresponsive_entry_meta() { echo '<p class="entry-meta">Hier kommt Dein Inhalt für die Meatdaten rein</p><!-- .entry-meta -->'; }
Wir laden die selbe Funktion, allerdings mit der Priorität 15, Standard ist 10. Sie wird somit nach der Funktion im Parent-Theme ausgeführt und überschreibt diese.
Im Fall unseres Catch-Themes ist es jedoch viel einfacher. Die Designer haben die Funktion in eine IF-Abfrage eingeschlossen. Diese prüft, ob die Funktion bereits existiert. Existiert sie, wird sie im Parent Theme ignoriert. Wir brauchen die Funktion also tatsächlich nur in unsere functions.php zu kopieren und können sie dort nach Belieben anpassen.
Das Theme Twenty Seventeen
Auch hier sehen wir wieder in die Datei sinle.php des Themes. Dort finden wir den Hinweis, dass der Inhalt in der Datei template-parts/post/content.php erstellt wird. Darin findet sich folgender Quellcode:
if ( 'post' === get_post_type() ) {
echo '<div class="entry-meta">';
if ( is_single() ) {
twentyseventeen_posted_on();
} else {
echo twentyseventeen_time_link();
twentyseventeen_edit_link();
};
echo '</div><!-- .entry-meta -->';
};
Du könntest an dieser Stelle wieder einfach die Template-Datei überschreiben. Möchtest Du die Funktion überschreiben, folgt die Suche nach der Funktion.
Eine Suche mit grep liefert uns folgende Ausgabe:
inc/template-tags.php:if ( ! function_exists( 'twentyseventeen_posted_on' ) )
Die Funktion befindet sich demnach in der Datei template-tags.php. Die Condition IF zeigt uns bereits, dass wir sie leicht im Child-Theme überschreiben können.
Änderung der Ausgabe der Metadaten
Wie Du die auszugebenden Metadaten in der Funktion ändern möchtest, ist jetzt eine Geschmacksfrage. Allerdings benötigst Du grundlegende Kenntnisse, die Ausgabe anzupassen. Geht es Dir nur darum alle Metadaten verschwinden zu lassen, kannst Du die Funktion so anpassen, dass sie lediglich einen Leerstring zurück gibt.
Zurückgeben ist, falsch formuliert ist, denn in beiden Fällen gibt die Funktion keinen Wert zurück, sondern druckt einfach wild Metadaten wie Autor, Datum und Kommentar mittels “printf” und “echo” aus. Möchtest Du die Metadaten löschen, kannst Du somit einfach den Inhalt der Funktion löschen. Doch dann wärst Du mit dem Überschreiben des Templates besser dran gewesen.
Eine Anpassung an Deine Wünsche gestaltet sich ohne Kenntnisse von HTML und PHP etwas schwieriger. Doch im Zweifelsfall kannst Du Dir an dieser Stelle leicht Hilfe holen.
Zusammenfassung
Du kannst die Metadaten Deines Themes ändern oder löschen, indem Du entweder die Template-Datei oder die Funktion die sie ausdruckt überschreibst.
Den Hinweis auf die Template-Datei und die Funktion findest Du bei den Metadaten für Beiträge in dem Template single.php.
Eine Template-Datei kannst Du einfach in das Verzeichnis Deines Child-Themes kopieren und nach Belieben anpassen. Eine Funktion wird in der functions.php Deines Child-Themes überschrieben. Es gibt drei Wege, die eine Funktion zu überschrieben. Welcher für Dein Theme genutzt werden kann, richtet sich nach der Umsetzung in Deinem anzupassenden Theme.
Solltest Du Fragen haben, oder Hilfe bei der Anpassung Deines Themes benötigen, dann nutze die Kommentarfunktion, oder schreibe mir. Meine Kontaktdaten findest Du im Footer.
Schreibe einen Kommentar