Wie funktioniert WordPress eigentlich?

Wie funktioniert WordPress?
WordPress wird nicht müde, seinen Loop abzuarbeiten

In unseren Kursen treffen wir immer wieder auf Teilnehmer, die Vorerfahrung mit Webdesign Programmen oder Baukastensystemen gesammelt haben. Nun stehen sie vor der großen Frage, wie sie die WordPress Software einordnen sollen: Offenbar funktioniert WordPress ganz anders.

Allein dass sich die Software nicht so einfach auf dem eigenen Rechner installieren lässt, führt zu Unverständnis. Sie sind daran gewöhnt, einzelne Seiten lokal zu produzieren, um sie in der Folge auf den Server hochzuladen. Mit WordPress ist aber alles sofort online. Auch die Begrifflichkeiten, die WordPress mit sich bringt, sind so ganz anders: Von PHP als Programmiersprache ist die Rede und von MySQL als Datenbanksystem. Dennoch produziert das System HTML, auch wenn nirgendwo Dateien mit der Endung .html zu sehen sind. Auch die Möglichkeiten, die die Arbeit mit Beiträgen und ihren Kategorien und Schlagwörtern im Gegensatz zum alleinigen Arbeiten mit Seiten mit sich bringt, erscheinen erst einmal gewöhnungsbedürftig.

All jenen, die noch nie mit Website-Erstellung zu tun hatte, kann das alles egal sein. WordPress rühmt sich nicht umsonst seiner einfachen Bedienbarkeit. Doch für Menschen, die über Vorerfahrung verfügen, gestaltet sich der Übergang vom Arbeiten mit statischen Websites zu einem dynamischen Vorgehen manchmal schwierig. So oder so: Unser heutiger Beitrag richtet sich an alle, die verstehen wollen, wie WordPress eigentlich funktioniert.

Trennung von Form und Inhalt

Grundsätzlich gilt, dass WordPress die Form von dem Inhalt trennt. Grob umrissen bedeutet dies: Alle nötigen Informationen, die das Layout bestimmen, werden durch das sogenannte Theme definiert. Wobei das Theme diese Informationen aufteilt in solche, die die Struktur betreffen, und in solche, die einzelne Formatierungen ausmachen. Strukturelle Angaben finden sich in einer langen Reihe von PHP-Dateien, zu denen sich auch Javascript-Dateien gesellen. Format-Angaben wie Größe, Farbe, Schriftart stehen in meist einer einzigen Datei, die style.css lautet.

Alle Inhalte, so also auch alle Beträge und Seiten, speichert WordPress in einer MySQL-Datenbank ab. In der stehen aber auch eine ganze Menge mehr grundlegende Informationen. So ist hier zum Beispiel hinterlegt, über welche Internetadresse die Website funktioniert oder welche Benutzer Zugriff zum Backend der Website haben. Elf Tabellen sind es insgesamt, die WordPress grundsätzlich braucht, um funktionieren zu können. Zu unserem Nutzerglück legt sich WordPress die bei der Installation selbst an.

WordPress funktioniert auch ohne vertiefte Kenntnisse

Die Kenntnis um diese vielen PHP-Dateien und den Aufbau der MySQL-Datenbank ist für den inhaltlichen Betreiber einer WordPress Website nicht wirklich nötig. Nach der Installation der WordPress Software auf dem Webspace ist das System prinzipiell sofort nutzbar: WordPress bringt immer das aktuelle Twenty… Theme mit (aktuell heißt es Twentysixteen). Wer keine speziellen Vorstellungen bezüglich des Aussehens der Website hat, ist mit dem Standard-Theme sicherlich nicht schlecht beraten. Seiten und Beiträge lassen sich im zugriffgeschützten Bearbeitungsbereich (dem sogenannten Backend) mittels eines einfachen Editors erstellen und ändern, Bilder über eine einfache Funktion auf den Server hochladen und in die Seiten und Beiträge einbinden.

Davon, dass WordPress die dahinterliegende Information in der Datenbank abspeichert, bekommen Sie als Nutzer erst einmal gar nichts mit. Wesentlich ist eigentlich nur, dass jede Seite oder jeder Beitrag nach dem Klick auf den Veröffentlichen-Button sofort im Frontend (die öffentliche Ansicht der Website) zu sehen ist. Und das an unterschiedlichen Stellen: Eine Seite wird zwar nur dann angezeigt, wenn Sie ihre Adresse aufrufen. Ein Beitrag hingegen kann im Rahmen unterschiedlicher Übersichtsseiten, sogenannter Archivseiten erscheinen.

Archivseiten sind

  • Blogseite, die alle Beiträge auflistet
  • Kategorieseite, die alle Beiträge auflistet, die entsprechend kategorisiert sind
  • Schlagwortseite, die alle Beiträge auflistet, die entsprechend verschlagwortet sind
  • Autorenseite, die alle Beiträge eines Autoren auflistet
  • Monatsseite, die alle Beiträge auflistet, die in dem Monat veröffentlicht wurden.

Die Auflistung erfolgt dabei immer – sofern im Theme nicht anders definiert – chronologisch und zeigt den aktuellsten Beitrag zuoberst. Auch definiert das Theme, ob diese Beiträge ihren Volltext zeigen oder nur einen Textauschnitt oder gar nur ihren Titel. Für Textausschnitt und nur Titel gilt, dass dann auch ein Link auf den Volltext verfügbar ist. Dieser Link führt zu einer Seite, die den Beitrag im Rahmen der Beitragsseite zeigt. Auf dieser Beitragsseite bietet WordPress – wieder je nach Theme-Definitionen – weitere Navigationsmöglichkeiten an, zum Beispiel die Navigation zum vorherigen und zum nächsten Beitrag oder aber auch zu Beiträgen, die thematisch entsprechen.

Sie sehen, hier ist also tatsächlich eine Menge mehr los als auf einer Website im herkömmlich statischen Sinne, die einfach immer nur einzelne Seiten präsentiert. Auf einer WordPress Website steht die Nutzererfahrung im Vordergrund. Es liegt an Ihnen, wie interessant Sie es Ihren Nutzern gestalten wollen.

Der Blick unter die Motorhaube: der WordPress Loop

Das Backend einer WordPress Website stellt weit mehr Bearbeitungsmöglichkeiten zur Verfügung als nur das Erstellen oder Bearbeiten eines Beitrages oder einer Seite. Hier besteht auch die Möglichkeiten, Zugriff auf das Theme mit seinen vielen PHP-Dateien und der CSS-Datei zu nehmen und somit am Erscheinungsbild zu schrauben.

Wer einfach nur bloggen oder ab und an kleine textliche Änderungen an der eigenen Website vornehmen möchte, braucht nun nicht mehr weiterzulesen.

Andererseits kommt der Appetit oft beim Essen. Fortgeschrittene Nutzer stellen sich irgendwann dann doch die Frage: »Wie funktioniert WordPress eigentlich?« Spätestens jetzt kommt man nicht mehr an dem WordPress Loop vorbei. Wir hatten gerade feststellt, dass Beiträge nicht nur auf einzelnen Beitragsseiten erscheinen, sondern auch auf Archivseiten. Seiten hingegen gibt es nur als einzelne Seiten. Verantwortlich dafür sind eine Reihe von PHP-Dateien, allen voran die

Templates

  • index.php
  • archive.php
  • single.php
  • page.php

Unter anderen liefern diese PHP-Dateien die nötigen strukturellen Angaben, die WordPress braucht, um die in der Datenbank abgespeicherten Informationen an den passenden Stellen ausgeben zu können. Die wahrscheinlich bedeutsamste Information, die WordPress dafür benötigt, ist der sogenannte WordPress Loop. Auf gut Deutsch bedeutet das die WordPress Schleife. Der Begriff Schleife deutet an, dass es sich hierbei um einen Vorgang handelt, der sich immer wieder wiederholt und erst endet, wenn alles abgearbeitet ist. Hier bedeutet Schleife konkret, dass WordPress danach schaut, ob es Beiträge gibt und wenn es welche gibt, diese ausgibt, solange es welche gibt. Der Befehl lautet übersetzt also:

Wenn es Beiträge gibt und solange es Beiträge gibt, gib Beiträge aus

Nun funktioniert die Internetwelt nicht auf Deutsch, deshalb macht es viel Sinn, sich den Merksatz auf Englisch abzuspeichern:

If have post, while have post, the post.

In der PHP-Schreibweise, die wie HTML mit spitzen Klammern arbeitet, lautet der Beginn des WordPress Loop wie folgt:

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

Tatsächlich ist das eine Kurzschreibweise, die aus drei Befehlen besteht: if, while und der Aufforderung zur Ausgabe. Diese drei Befehle können auch einzeln stehen und bewirken dann dasselbe. Irgendwann muss der Loop auf jeden Fall wieder enden, auch hierfür gibt es Befehle: endwhile und endif. Die dazugehörigen Befehle können so lauten:

<?php endwhile; else : ?>

               <p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>

<?php endif; ?>

Der Befehl endwhile beinhaltet noch ein weiteres Element: else. Dies definiert, was zu tun ist, wenn es gar keine passenden Beiträge gibt. Dabei sorgt die Angabe _e dafür, dass WordPress den Hinweis in der Sprache ausgibt, in der WordPress installiert wurde. Mit endif ist der Loop abgeschlossen.

Alles, was innerhalb des WordPress Loops steht, definiert, wie die Beiträge angezeigt werden sollen. Auch hierfür gibt es Befehle:

  • Titel des Beitrags: the_title()
  • Auszug oder Volltext: the_excerpt() bzw. the_content()
  • Kategorie: the_category()
  • etc.

Ausgezeichnet sind diese PHP-Elemente immer auch mit HTML-Markierungen. Eine Beitragsüberschrift sollte immer innerhalb eines h2-tags stehen, ein Absatz ist wie oben im Beispiel mit p markiert etc.. Dabei kann das Ganze relativ komplex daherkommen und auf den ersten Blick sehr verwirrend wirken. Grundsätzlich gilt, dass die Reihenfolge der Elemente hier in der Abfrage auch der Reihenfolge entspricht, mit der WordPress die Ausgabe im Frontend anzeigt. Wollten Sie, dass der Textauszug vor dem Beitragstitel steht, müssten Sie die Reihenfolge hier ändern.

Der WordPress Loop kann direkt in den genannten PHP-Dateien index, archive, single oder page stehen. Oftmals nutzen diese aber weitere Verschachtelung, rufen anstelle des Loop-Inhalts also andere PHP-Dateien auf, die erst den eigentlichen Loop-Inhalt bereithalten. In dem Fall steht dort:

<?php get_template_part( 'content', 'none' ); ?>

Was der Loop konkret anzeigen soll, steht in diesem Fall in der Datei content.php. Wie der einzelne Theme-Autor vorgehen möchte, bleibt rein ihm überlassen. Wollen Sie etwas ändern, bleibt Ihnen nichts anderes übrig, als seine Arbeit lesen und verstehen zu lernen.

PHP-Dateien über das Backend studieren

Der WordPress Design Editor
Mit dem WordPress Design Editor können Sie sich PHP-Dateien anschauen

Wenn Sie nun wissen wollen, wie der Autor Ihres Themes gearbeitet hat, können Sie sich das ganz einfach anschauen: Unter Design > Editor haben Sie Zugriff auf alle Dateien, die im Stammverzeichnis des Themes liegen. Nach dem Aufruf des Editors sehen Sie im Bearbeitungsfenster immer die CSS-Datei. Rechts neben dem Bearbeitungsfenster finden Sie unter der Überschrift Templates eine Liste aller PHP-Dateien, die die Ihnen hier zur Verfügung stehen. Klick auf eine von ihnen, sagen wir: die single.php, öffnet diese im Bearbeitungsfenster.

Bearbeitungsfenster bedeutet im Übrigen auch wirklich Bearbeitung. Hier können Sie Änderungen vornehmen, die nach dem Speichern sofort im Frontend sichtbar werden.

Für ein wenig Orientierung ist es immer sinnvoll, sich erst einmal eigene Markierungen zu setzen, um herauszufinden, welches Element an welcher Stelle eigentlich wirkt. Gern genommen als Markierung sind intelligente Begriffe wie »huhu« oder auch »lala«. Die werden Ihnen sicher auffallen, wenn Sie im Frontend nach ihnen suchen!

Bei aller Begeisterung für das Experimentieren bedenken Sie bitte:

Jeder Fehler, den Sie hier machen, könnte die Funktionsweise Ihrer Website negativ beeinflussen!

Und bedenken Sie bitte auch:

Jede Änderung, die Sie hier vornehmen, wird nach dem Aktualisieren des Themes wieder überschrieben.

Wollen Sie Ihr Theme tatsächlich bearbeiten und nachhaltig verändern, bleibt Ihnen nicht viel anderes übrig, als ein Child Theme zu erstellen. Wie das geht, damit haben wir uns bereits in dem Beitrag Was ist ein Child Theme – und wie richte ich es ein? beschäftigt.

Für weitere Informationen über den WordPress Loop sowie für überhaupt alles im Zusammenhang mit den Funktionsweisen von WordPress lohnt sich immer der Blick in den WordPress Codex: https://codex.wordpress.org/The_Loop

WordPress ist weit mehr als allein der Loop. Und doch stellt der Loop die zentrale Komponente dar, die zu verstehen den Einstieg bedeutet, um verstehen zu lernen, wie WordPress eigentlich funktioniert. Zukünftig werden wir uns übrigens immer wieder mal dem Loop widmen und zeigen, welche Änderungen Sie vornehmen können.


Beitragsbild: Britta Kretschmer

 

Schreibe einen Kommentar

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