WordPress-Geekiness ist ein erworbener Geschmack und wird mit jedem neuen, was Sie lernen, besser. Wir alle verwenden WordPress schon seit einiger Zeit – das ist einer der Gründe, warum Sie hier bei Themelocal sind und diesen Artikel lesen! Wie Sie bin auch ich über diese feine Handwerkskunst gestolpert und von ihrer Schönheit fasziniert. WordPress bietet uns nicht nur die Möglichkeit, in wenigen Minuten dynamische, optisch ansprechende Websites zu veröffentlichen, sondern es auch als mehrdimensionale Content-Management-Lösung (CMS) einzusetzen.
Als Randnotiz möchte ich erwähnen, dass dieser Artikel für einen WordPress-Anfänger gedacht ist. Die meisten von euch wissen vielleicht, wovon ich rede. Also zögern Sie nicht, es schnell zu lesen und Ihre Ansichten im Kommentarbereich zu teilen. Vielen Dank!
Um wieder auf Kurs zu kommen, werfen wir einen Blick auf die Dinge, die wir mit WordPress tun können:
- Magazin-Website – TIME, GigaOM, TechCrunch, alle verwenden WordPress.com VIP
- Hosten Sie mehrere Websites unter einem Dach – EduBlogs (WordPress MultiSite)
- Ein Forum aufbauen (BuddyPress)
- Online-Portfolio
- Hosten Sie ein Jobportal
- E-Commerce-Shop (Woocommerce, Exchange, EDD, Cart66 usw.)
- Fotoblog oder ein Fotoportfolio
- Site für eine Band, ein Restaurant und vieles mehr
Die Liste geht weiter. Dieser Artikel dient als Vorläufer unserer kommenden Post-Serie – The Definitive Guide to WordPress Caching. Bevor wir WordPress-Caching verstehen, müssen wir verstehen, wie WordPress intern funktioniert. Nicht nur das Bearbeiten und Löschen von Posts und Kommentaren – sondern wie sich ein paar tausend Zeilen Code ineinander verflechten und wunderschöne dynamische Websites erzeugen.
Interne Funktionsweise von WordPress
Wir alle wissen, wie man mit WordPress arbeitet. Alles beginnt mit der Anmeldung bei Ihrem WordPress-Administrator-Dashboard – direkt von your-site/wp-login.php, gefolgt vom Veröffentlichen, Ändern oder Hochladen neuer Inhalte, Installieren von Plugins, Themes, Erstellen von Backups usw.
Aber haben Sie schon einmal darüber nachgedacht, wie das Ganze funktioniert? Websites laufen auf HTML (was für Hyper Text Markup Language steht). Überprüfen Sie Ihre Adressleiste – Sie finden immer http://sitename.tld. Andere Protokolle sind https, ftp, ssh usw.
Es versteht sich also, dass das ultimative Ziel von WordPress darin besteht, HTML-Seiten zu generieren – dynamisch. Der hier zu verstehende Schlüsselbegriff ist „dynamisch“. Die Begriffe „HTML-Seite“, „Webseite“ und „Webseite“ sind alle synonym. Auf der sehr grundlegenden Ebene verwendet WordPress PHP und eine SQL-Datenbank, um alle seine Daten zu speichern. Wir müssen uns nicht viel mit PHP und anderen Skriptsprachen, die WordPress verwendet, befassen, da dies ein Anfängerleitfaden ist und es sich um fortgeschrittene Themen handelt.
Somit haben wir zwei Entitäten. Einer ist der „PHP-Code“, aus dem der WordPress-Kern besteht, und die „Datenbank“, die den Speicher von WordPress ausmacht. Jede WordPress-Installation hat eine Datenbank. Nicht mehr und nicht weniger. Alle Informationen, die Sie eingegeben haben und in Zukunft tun werden, werden in der WordPress-Datenbank gespeichert. Beispiele beinhalten:
- Benutzerinformationen wie Passwort (verschlüsselt mit MD5), E-Mail-Adresse etc.
- Alle Beiträge, Seiten, Tags, Kategorien und die Beziehung zwischen ihnen
- Benutzerdefinierte Beitragstypen
- Überarbeitungen, Entwürfe und Optionen in den Papierkorb posten
- Kommentare – sowohl genehmigte als auch nicht genehmigte und Spam
- Theme-Optionen und Plugin-Daten
Was ist mit den hochgeladenen Bildern, Dokumenten und anderen Dateien? Sind sie auch in der WordPress-Datenbank gespeichert? Nö. Sie werden in einem Ordner namens „wp_content“ gespeichert. Dazu folgt mehr.
Die WordPress-Ordnerstruktur
Ab WordPress 3.6.1 gibt es in jeder WordPress-Installation drei Hauptordner.
Der Basisordner
Dies ist das WordPress-Installationsverzeichnis und alles (außer der WordPress-Datenbank existiert hier). Wir nennen es das „Root-Verzeichnis“. Im Falle von Leuten, die WordPress auf Shared-Hosting-Servern ausführen, die von cPanel betrieben werden, ist das Stammverzeichnis höchstwahrscheinlich der Inhalt des Verzeichnisses „public_html“, wenn Sie WordPress in Ihrer Basisdomäne ausführen (dh site.com und nicht site.com/ Mappe).
Das WordPress-Stammverzeichnis enthält genau drei Ordner: wp_content, wp_includes und wp_admin sowie eine Reihe anderer PHP-Dateien, von denen die wichtigste „wp_config.php“ ist. Durch das Ändern dieser Datei können wir eine Reihe von grundlegenden WordPress-Anpassungsoptionen hinzufügen, die im WordPress-Administrator-Dashboard nicht ohne weiteres verfügbar sind. Zum Beispiel können wir Post-Revisionen deaktivieren, den von WordPress verwendeten Site-Namen festlegen (nützlich für Domain-Änderungen), den Wartungsmodus aktivieren usw. Die Datei wp-config.php ist eine sehr wichtige Datei und sollte nicht manipuliert werden. Es enthält wichtige Informationen wie die Zugangsdaten zu Ihrer WordPress-Datenbank. Wenn jemand auf Ihre Datenbank zugreifen kann, hat er/sie die vollständige Kontrolle über Ihre Site.
wp_includes
Dieser Ordner enthält alle anderen PHP-Dateien und -Klassen, die für die Kernfunktionen von WordPress erforderlich sind. Auch hier möchten Sie keine Dateien in diesem Verzeichnis bearbeiten.
wp_admin
Dieser Ordner enthält die verschiedenen Dateien des WordPress-Dashboards. Sie wissen, dass alle administrativen oder mit WordPress verbundenen Funktionen, wie das Verfassen von Beiträgen, das Moderieren von Kommentaren, das Installieren von Plugins und Themes, über das WordPress-Dashboard erfolgen. Der Zugriff ist hier nur registrierten Benutzern erlaubt und der Zugriff ist wiederum je nach Rolle des Benutzers eingeschränkt. Ein Administrator erhält vollen Zugriff, gefolgt vom Redakteur, dann dem Mitwirkenden und schließlich dem Abonnenten. Das WordPress-Dashboard ist normalerweise unter http://wpexplorer.com/wp-admin zugänglich.
wp_content
Der Ordner wp_content enthält alle von Benutzern hochgeladenen Daten und ist wiederum in drei Unterordner unterteilt:
- Themen
- Plugins
- Uploads
Das Verzeichnis „themes“ enthält alle Themes, die auf Ihrer WordPress-Site installiert sind. In jeder wordpress.zip-Datei, die Sie von WordPress.org herunterladen, sind 2 Themes installiert – für WordPress 3.6.1 sind es Twenty Twelve und Twenty Thirteen. Sie können beliebig viele Themes installieren, aber nur jeweils ein Theme aktivieren (obwohl es einige Plugins gibt, mit denen Sie mehr aktivieren können). Außerdem darf das Verzeichnis „themes“ niemals leer sein, da WordPress mindestens ein Theme benötigt, um damit zu arbeiten!
In ähnlicher Weise werden die „Plugins“ verwendet, um alle auf Ihrer WordPress-Site installierten Plugins zu speichern. Im Gegensatz zum Verzeichnis „themes“ kann dieses Verzeichnis leer sein, da Sie eine WordPress-Site perfekt ausführen können, ohne Plugins zu verwenden. Es steht Ihnen frei, so viele Plugins zu aktivieren, wie Sie möchten, aber es empfiehlt sich, nur die notwendigen zu installieren. Lesen Sie Kylas Artikel über die verschiedenen heute verfügbaren WordPress-Plugins.
Alle Bilder (und andere Mediendateien), die Sie seit dem Start Ihrer Site hochgeladen haben, sowie alle zukünftigen Uploads werden im Verzeichnis „uploads“ nach Jahr, Monat und Tag kategorisiert gespeichert. Dieser Ordner kann als Datenbank für alle nicht-textuellen Daten betrachtet werden – Bilder, PDFs, Videos, MP3s usw. Aus diesem Grund ist es eine gute Sicherheitspraxis, den öffentlichen Zugriff auf diese Ordner einzuschränken. Dies kann durch Ändern der .htaccess-Datei erreicht werden, die sich im Verzeichnis wp_content befindet. Daher beim Erstellen eines Backups; Nur den WordPress-Installationsordner zu kopieren, reicht nicht. Sie müssen sowohl die Datenbank als auch den gesamten Inhalt Ihres WordPress-Installationsverzeichnisses kopieren!
Die Anatomie einer WordPress-Anfrage
Oder wie ich es gerne nenne,
Was passiert, wenn jemand Ihren Blog ansieht?
Wenn jemand Ihre WordPress-basierte Website besucht, generiert WordPress dynamisch einen HTML-Code (kombiniert mit CSS und JS) und stellt ihn dem Besucher bereit. Sie sehen die Erweiterung .html nach der URL nicht (wie Sie es vielleicht auf einigen alten Websites gesehen haben), da dieser Inhalt dynamisch generiert wird. Die folgenden Punkte stellen eine Verallgemeinerung der Aktionen dar, die im Falle einer Webseitenanfrage ausgeführt werden:
- Der Browser des Besuchers fordert eine Webseite an
- Der WordPress-Kern (kann man sich als das Gehirn von WordPress vorstellen) ruft die erforderlichen PHP-Skripte auf, beginnend mit index.php
- Der WP-Kern kommuniziert dann mit seiner Datenbank und ruft die Daten (Beiträge/Seiten etc.)
- Es kombiniert dann die geholten Daten, die Daten der aktuell aktiven Plugins und das aktuell aktive Theme und generiert den HTML-Code „on-the-fly“ oder „dynamisch“.
- Es liefert dann diesen dynamisch generierten HTML-Code an den Browser des Besuchers
Ebenso führt der WordPress-Kern beim Veröffentlichen oder Speichern eines Beitrags, beim Senden eines Kommentars oder bei einer Suche die erforderlichen internen Operationen durch und speichert sie in seiner Datenbank für die zukünftige Verwendung und benachrichtigt auch den WordPress-Administrator. Sie (der Administrator) sehen sie als neuen Kommentar, der auf Moderation wartet, oder als „x“ Anzahl von Kommentaren in Ihrer Spam-Warteschlange usw.
Nun, all diese Schritte jedes Mal zu wiederholen, wenn jemand eine Webseite anfordert (Beitrag, Seite, Archivseite, alles andere), ist eine zeit- und ressourcenintensive Aufgabe. Es ist in Ordnung, wenn 10 Personen Ihre Website besuchen. Aber erhöhen Sie das um 100, 1000 oder eine Million, dann beginnt der eigentliche Ärger. Nur Supercomputer könnten so viele gleichzeitige Operationen bewältigen. Und die meisten WordPress-Sites werden auf gemeinsam genutzten Webhosting-Servern gehostet, die vielleicht 1/1000 . habenNS der Leistungsfähigkeit von Supercomputern.
Also was machen wir jetzt? Geben Sie das WordPress-Caching ein. Wir werden es hier nicht behandeln, also bleiben Sie bitte dran für den nächsten Teil der Serie – eine Einführung in das WordPress-Caching.