Zu verstehen, wie WordPress hinter den Kulissen funktioniert, kann faszinierend sein. Für die meisten Benutzer scheint es einfach zu sein: Geben Sie eine URL ein, und eine Seite wird schnell geladen. Doch im Hintergrund passiert tatsächlich eine Menge.
Als wir vor einigen Jahren begannen, mit WordPress zu arbeiten, haben wir uns eingehend damit beschäftigt, wie alles funktioniert. Und jetzt sind wir hier, um dieses Wissen mit Ihnen in einfachen Begriffen zu teilen, damit Sie mehr über WordPress verstehen können.
In diesem Leitfaden führen wir Sie durch das Innenleben von WordPress. Wir haben auch eine leicht verständliche Infografik erstellt, um die Dinge klarer zu machen.
Was ist WordPress?
WordPress ist ein System zur Erstellung von Websites und zur Verwaltung von Inhalten. Es ist eine Open-Source-Software, mit der jeder jede Art von Website erstellen kann.
Es begann 2003 als Blogging-Plattform, entwickelte sich aber bald zu einem CMS und später zu einer vollwertigen Plattform für die Erstellung von Websites. Heute werden mehr als 43 % aller Websites im Internet damit betrieben.
Wenn Sie mehr über die Entwicklung, die Geschichte und die Vor- und Nachteile von WordPress erfahren möchten , lesen Sie unseren umfassenden Leitfaden darüber, was WordPress ist und was die Erstellung einer WordPress Website kostet.
Warum sollten Sie lernen, wie WordPress funktioniert?
WordPress ist eine Open-Source-Software, was bedeutet, dass jeder seinen Code studieren und eigene Anwendungen (Plugins) und Templates (Themes) dafür schreiben kann.
Im Laufe der Jahre haben wir unzählige Anfänger gesehen, die schnell zu fortgeschrittenen Benutzern wurden, indem sie einfach lernten, wie WordPress als Software funktioniert.
Sie lernen auch, wie Sie die Leistung von WordPress verbessern und besseren Code für Ihre Projekte schreiben können.
Dieser Leitfaden wird Sie Schritt für Schritt durch den gesamten Prozess führen. Wir beginnen, wenn ein Benutzer eine Seite anfordert und enden, wenn diese Seite vollständig geladen ist.
Sind Sie bereit? Dann fangen wir an.
Weitere Einzelheiten finden Sie in unserer schriftlichen Anleitung unten.
1. Datei wp-config.php laden
Die wp-config.php ist die Konfigurationsdatei von WordPress. Sie legt globale Variablen für eine WordPress Website fest und enthält Informationen über Ihre WordPress Datenbank. Aus offensichtlichen Gründen ist dies die erste Datei, die WordPress lädt.
Erfahren Sie mehr über die Datei wp-config.php und wie man sie bearbeitet.
2. Standardkonstanten einrichten
Nachdem die Datei wp-config.php geladen wurde, setzt WordPress die Standardkonstanten.
Dazu gehören Informationen wie der standardmäßige WordPress-Upload-Speicherort, maximale Dateigrößen und andere Standardkonstanten, die in der Datei wp-config.php festgelegt sind.
3. Laden Sie die Datei advanced-cache.php
Wenn eine advanced-cache.php-Datei auf Ihrer Website vorhanden ist, wird WordPress diese als nächstes laden.
Diese Datei dient als Drop-In-Datei und wird von mehreren beliebten Plugins verwendet, insbesondere von WordPress-Caching-Plugins. Wenn Ihre Website diese Datei verwendet, sehen Sie in der Ansicht „Plugins“ ein neues Element namens „Drop-ins“.
4. Datei wp-content/db.php laden
WordPress ermöglicht es Entwicklern, ihre eigenen Datenbankabstraktionsschichten zu erstellen und sie in eine db.php-Datei zu laden, die sich im wp-content-Ordner befindet. WordPress-Caching-Plugins verwenden sie häufig zur Verbesserung der Datenbankleistung.
Wenn diese Datei auf Ihrer Website vorhanden ist, wird sie von WordPress geladen.
5. MySQL verbinden und Datenbank auswählen
WordPress hat nun genügend Informationen, um weiterzumachen. Es wird sich mit dem MySQL-Server verbinden und die Datenbank auswählen.
Wenn WordPress keine Verbindung zur Datenbank herstellen kann, wird die Fehlermeldung „Fehler beim Herstellen der Datenbankverbindung“ angezeigt, und WordPress wird an dieser Stelle beendet.
Wenn alles in Ordnung ist, werden die nächsten Schritte eingeleitet.
6. Laden Sie die Datei object-cache.php oder wp-includes/cache.php
WordPress wird nun nach der Datei object-cache.php suchen. Wenn sie nicht vorhanden ist, lädt WordPress die Datei wp-includes/cache.php.
7. Laden Sie die Datei wp-content/sunrise.php
Wenn es sich um ein Multisite-Netzwerk handelt, sucht WordPress nach der Datei sunrise.php, wenn sie im Ordner wp-content vorhanden ist.
8. Lokalisierungsbibliothek laden
WordPress lädt nun die Bibliothek l10n.php im Ordner wp-includes. Diese Datei lädt das WordPress-Lokalisierungssystem, lädt Übersetzungen, legt Gebietsschemata fest, usw.
In unserem Leitfaden erfahren Sie, wie Sie WordPress in anderen Sprachen verwenden können.
9. Multisite-Plugins laden
Wenn es sich um ein Multisite-Netzwerk handelt, dann lädt WordPress die Multisite Plugins. Erfahren Sie mehr darüber, wie Plugins in WordPress Multisite-Netzwerken funktionieren.
10. Do Aktion ‚muplugins_loaded‘
Die Aktion muplugins_loaded wird jetzt von WordPress ausgeführt. Diese Aktion ist nur für netzwerkaktivierte Plugins auf einer WordPress-Multisite verfügbar.
11. Aktive Plugins laden
WordPress lädt nun alle aktiven Plugins auf der Website. Dazu wird der Eintrag active_plugins in der Optionstabelle Ihrer WordPress-Datenbank durchsucht. Dies ermöglicht WordPress, Plugins zu ignorieren, die auf Ihrer Website installiert, aber nicht aktiviert sind.
12. Datei pluggable.php laden
Die Datei pluggable.php enthält Funktionen, die von WordPress-Plugins neu definiert werden können.
WordPress prüft nun, ob ein anderes Plugin die Funktionen in dieser Datei bereits definiert hat. Andernfalls wird es diese Funktionen selbst definieren.
13. Do Aktion ‚plugins_loaded‘
WordPress wird nun die Aktion „plugins_loaded“ ausführen.
Damit können Entwickler ihre Funktionen so einstellen, dass sie ausgeführt werden, nachdem alle aktiven Plugins geladen wurden.
14. Umschreibregeln laden
WordPress wird nun die Rewrite-Regeln laden. Diese Rewrite-Regeln helfen WordPress, SEO-freundliche URLs zu verwenden.
15. Instanziieren Sie $wp_query, $wp_rewrite, $wp
Zu diesem Zeitpunkt lädt WordPress die folgenden Objekte:
$wp_query: Die globale Instanz, die die Klasse WP_Query enthält. Sie teilt WordPress mit, welche Inhalte in einem typischen WordPress-Abfrageformat angefordert werden.
$wp_rewrite: Die globale Instanz, die Ihre WP_Rewrite-Klasse enthält. Sie enthält Ihre Rewrite-Regeln und -Funktionen, die WordPress mitteilen, welche URL zur Anzeige des angeforderten Inhalts verwendet werden soll.
$wp: Die globale Instanz der WP-Klasse enthält Funktionen, die Ihre Anfrage parsen und die Hauptabfrage durchführen.
16. Aktion ’setup_theme‘ durchführen
WordPress wird nun die Aktion „setup_theme“ ausführen. Diese Aktion wird ausgeführt, bevor Ihr WordPress-Theme geladen wird.
17. Laden Sie die Datei functions.php des Child-Themes
Die Datei functions.php funktioniert wie ein Plugin und wird in WordPress-Themes verwendet, um Ihrer Website themenspezifische Funktionen hinzuzufügen. Wenn Sie ein Child-Theme verwenden, lädt WordPress jetzt die functions.php-Datei Ihres Child-Theme.
Andernfalls wird die Datei functions.php Ihres aktuellen Themes geladen.
18. Laden Sie die Datei functions.php des übergeordneten Themes
Wenn Sie ein Child-Theme verwenden, lädt WordPress jetzt die Datei functions.php Ihres Parent-Themes.
19. Aktion ‚after_setup_theme‘ durchführen
Diese Aktion wird ausgeführt, nachdem WordPress das Theme eingerichtet und die Theme-Funktionen geladen hat. Sie ist die erste Aktion, die für Themes verfügbar ist.
20. Aktuelles Benutzerobjekt einrichten
An diesem Punkt lädt WordPress das aktuelle Benutzerobjekt. Es ermöglicht WordPress, die Anfrage entsprechend der Rolle und den Fähigkeiten des Benutzers zu verwalten.
21. Aktion ‚init‘ durchführen
WordPress hat bis jetzt alle wichtigen Informationen geladen, die es benötigt. Jetzt wird die Aktion „init“ ausgelöst. Diese Aktion registriert auch Blöcke, die im Kern vorhanden sind oder von Plugins bereitgestellt werden, die auf dieser Website installiert sind.
Diese Aktion ermöglicht es Entwicklern, Code hinzuzufügen, der ausgeführt werden muss, nachdem WordPress alle zuvor genannten Informationen geladen hat.
22. Do Aktion ‚widget_init‘
Die Aktion widget_init
ermöglicht es Entwicklern, Widgets zu registrieren und den Code auszuführen, den sie zu diesem Zeitpunkt benötigen.
23. wp() ausführen
WordPress ruft nun die Funktion wp()
auf, die sich in der Datei wp-includes/functions.php
befindet. Sie richtet die WordPress-Abfrage-Globals $wp, $wp_query, $wp_the_query ein und ruft dann $wp->main auf.
24. Parse-Anfrage
Jetzt hat WordPress alle Informationen, die es braucht, um die Benutzeranfrage zu analysieren. Es beginnt mit der Überprüfung der Rewrite-Regeln, die der Anfrage des Benutzers entsprechen.
Anschließend werden Abfragevariablenfilter ausgeführt, ein Action-Hook angefordert und eine Header-Anfrage gesendet.
25. Abfrage ausführen
Wenn kein Inhalt mit der Abfrage übereinstimmt, setzt WordPress die Variable is_404.
Andernfalls fährt WordPress fort, Abfragevariablen zu laden.
Dann wird WP_Query->get_posts() ausgeführt.
Anschließend wird die DO_ACTION_REF_ARRAY-Aktion „pre_get_posts“ mit dem WP_Query-Objekt ausgelöst.
WordPress führt nun apply_filters aus, um die Abfrage zu bereinigen und einige letzte Prüfungen durchzuführen.
Jetzt werden die Beiträge aus der Datenbank geholt und die Filter posts_results und the_posts angewendet.
Der Abfrageteil endet damit, dass WordPress die Beiträge zurückgibt.
26. Do Aktion ‚template_redirect‘
WordPress wird nun die Aktion template_redirect
ausführen. Dieser Hook wird ausgeführt, bevor WordPress bestimmt, welche Vorlagenseite geladen werden soll.
27. Vorschubvorlage laden
Handelt es sich bei dem angeforderten Inhalt um einen RSS-Feed, so lädt WordPress die Feed-Vorlage.
28. Vorlage laden
WordPress sucht nun anhand der WordPress-Vorlagenhierarchie nach der Vorlagendatei. Dann lädt es die Vorlage, die normalerweise eine WordPress-Schleife enthält.
29. Aktion ‚Herunterfahren‘ durchführen
Unmittelbar vor der Beendigung der gesamten PHP-Ausführung löst WordPress die letzte Aktion namens shutdown aus.
WordPress hört hier auf zu arbeiten. Es hat den Code ausgeführt und die vom Benutzer angeforderte Webseite generiert.
Nun antwortet Ihr Webhosting-Server auf die Anfrage eines Benutzers, indem er ihm die von WordPress generierte Webseite sendet.
Diese Seite enthält HTML-, CSS- und Javascript-Code, der dem Browser des Benutzers mitteilt, wie die Seite auf dem Bildschirm angezeigt werden soll.
Erstaunlich, nicht wahr? All diese Dinge geschehen innerhalb von Millisekunden. Wenn Sie einen dieser besten WordPress-Hostingdienste nutzen, wird Ihre Seite im Idealfall in ein paar Sekunden geladen.
Wir hoffen, dass dieser Artikel Ihnen geholfen hat, zu erfahren, wie WordPress hinter den Kulissen funktioniert. Vielleicht interessieren Sie sich auch für unsere Tipps zum Schutz des WordPress-Administrationsbereichs oder werfen Sie einen Blick auf diesen Leitfaden mit praktischen WordPress-Tipps, -Tricks und -Hacks.
Wenn Ihnen dieser Artikel gefallen hat, dann abonnieren Sie bitte unseren YouTube-Kanal für WordPress-Videotutorials. Sie können uns auch auf Twitter und Facebook finden.
MJB
hm – I am kind of missing step 0
so is this a correct assumption`?
a URL comes in at my hosted webserver
requesting let’S say my home page
then the webserver fires up step (1) ?
which then runs until step (24)
where WP parses the incoming URL to figure out next steps?
WPBeginner Support
Step 0 can certainly be a URL linking to the site, around step 15 is where the specific page would be considered.
Admin
Mike Ross
What about index.php in the root?
I don’t get it…There are guides out there that lay out a totally different sequence of WordPress initialization.
WPBeginner Support
Index.php would be for the theme files, we cover the theme hierarchy in our guide below:
https://www.wpbeginner.com/wp-themes/wordpress-template-hierarchy-explained/
Admin
Mike Ross
No, I’m not talking about the theme’s homepage template. I’m taking about the index.php at the root, which is a part of the WordPress core. It triggers wp-blog-header.php, which then loads wp-load.php which sets up the entire WordPress environment.
WPBeginner Support
The index.php in the root folder tells WordPress to load your theme
Admin
Terry Woods
That is correct
Jason
Why start from wp-config.php ? I thought it was from index.php
WPBeginner Support
That would be for themes and not WordPress itself, for the index.php you would want to take a look at the template hierarchy in our guide below:
https://www.wpbeginner.com/wp-themes/wordpress-template-hierarchy-explained/
Admin
Petru Ciucur
This is THE Article. Thanks !
WPBeginner Support
Glad our guide was helpful
Admin
Juan Johnson
HI wpbeginner.
I noticed that in your sequence, you mentioned that wp does this and then that. Physical, where is the instance of wp()? On the server? Does this happens in between an initial load page post request when I use google browser and the final loading of the wp dashboard after login?
WPBeginner Support
You may want to take another look at the infographic for understanding the loading and how it works.
Admin
Juan Johnson
I am a programmer. I am getting more into the web page design, however, I cannot let go of wanting to know what is going on behind the scenes. You article has given me a foundation to start confidently constructing web pages.
WPBeginner Support
Glad our guide was helpful
Admin
Paul McDevitt
This is brilliant. Ran into several issues with old, expired plugins, updating PHP, etc, and a virus (probably because of the prior items.) So all locked down and scrubbed up now, but wanted to understand better the sequence of events as looking into any one PHP file is like trying to read a bowl of spaghetti, as I did not understand the sequencing of the activities. So absolutely amazing. Love this.
Thanks
WPBeginner Support
Glad our article was helpful
Admin
Naresh
very clear article.
WPBeginner Support
Thank you
Admin
Chinenye
I want to really know what wordpress does, how can I make and share posts through word press? What does it do for me apart from creating a site?
WPBeginner Support
WordPress allows you to create a site without needing to have knowledge of HTML and CSS. For sharing your posts, you would normally want to take a look at social media plugins: https://www.wpbeginner.com/plugins/best-social-media-plugins-for-wordpress/
Admin
ganesh
very interesting
Adrian
Interesting but not really a definition of how Wordpress works. This describes what it does, not how it does it. Would be useful to also know how it does things as well as what it does. For example how does it know which theme to load? Without the how all the above is very high level.
amir saleem
17. Load Child Theme’s functions.php File
The functions.php file acts as plugin and is used in WordPress themes to add theme specific features to your website. If you are using a child theme, then WordPress will now load your child theme’s functions.php file.
Otherwise, it will go on and load your current active theme’s functions.php file.
18. Load Parent Theme’s functions.php File
[ If you are using a child theme ], then WordPress will now load your parent theme’s functions.php file.
check the text in brackets and match all the wording here will be replace [ if you are using a parent theme ].
Thanks.
Caleb
Amir, I think what the OP is trying to say is that if there is a child theme, then obviously there would be a parent and child functions.php and wordpress first loads the child themes functions.php before loading the parent’s. Otherwise, it just loads the parent’s functions.php straightaway.
Altab Hossen
Thanks for this nice explanation and info-graphics is so cool !!
Kristian
And people wonder why WordPress sites are slow. It does all that at run-time for every single page view!
Johnpaul Onwueme
Thanks for the info graphics
deborah
still seems complicated to me, but all tech does
Jason
Would you be willing to offer this as a printed poster? I don’t know if it would generate much interest or make you any money, but since it is such a nice graphic it might make a nice office wall hanging.
anis
Thank you for this article . I wanted to know since long time
the different steps for loading .
What is a database abstraction layer and how to configure it ?