Gar nicht so selten kommt es vor, dass man an seinem Blog Veränderungen vornehmen möchte und dafür die single.php verändern muss. Ein konkreter Fall könnte zum Beispiel sein, dass man in der ursprünglichen single.php ein Code-Fragment entfernen möchte, würde man dies aber machen wären alle alten Beiträge im Design “zerschossen”. Ein anderer Fall wäre es, ein Code-Fragment hinzuzufügen, dass man aber in den bereits bestehenden Beiträgen nicht enthalten haben möchte.
Wie geht man das nun am besten an? Dabei gibt es sicherlich mehrere Lösungswege. Man könnte zum Beispiel eine Kategorie erstellen, der alle neuen Beiträge zugewiesen werden und die dann eine eigene single.php bekommt. Wie das funktioniert ist in dem Beitrag WordPress-Artikel einer bestimmten Kategorie sollen ein eigenes Template erhalten beschrieben.
Hier möchte ich nun eine andere Möglichkeit vorstellen. Und zwar geht man dabei nach dem Veröffentlichungsdatum der Beiträge.
<?php $post = $wp_query->post;
$date1 = "2016-02-04"; //4. Februar 2016
$date2 = $post->post_date;
if ($date1 < $date2) {
include(TEMPLATEPATH . '/single-neu.php');
}
else {
include(TEMPLATEPATH . '/single-alt.php');
}
?>
Dabei werden zwei Daten mit einander verglichen und je nach dem ob das Datum kleiner oder größer ist wird auf eine bestimmte single.php zugegriffen. Dieser Code lässt sich selbstverständlich auch mit anderen, zum Beispiel dem nach den unterschiedlichen Kategorien, kombinieren.
Wir arbeiten seit 20 Jahren mit WordPress und bieten diverse Dienstleistungen rund um das System an. Kontaktiere uns für weitere Informationen oder für ein Angebot.
Gute Idee mit dem Datum! Aber macht es nicht Sinn, die Funktion
get_template_part()
stattinclude()
zu nutzen?Referenz: Custom Post Templates und Understanding get_template_part
Jo, kann man so machen. Aus konzeptioneller Sicht sollte man jedoch mögliche Probleme von vornherein ausschließen, indem man die Datei nur für das benutzt, für was sie gedacht ist und in der Beeitragsverwaltung nur den reinen Beitragsinhalt verwaltet. Dann wird auch nichts “zerschossen”. Sonst könnte man ja gleich den ganzen Themewechsler in die Tonne kloppen.
TEMPLATEPATH .. is aber eklig. Was spricht gegen get_template_directory()?
cu, w0lf.
Nichts spricht gegen den Einsatz von
get_template_directory()