Die Datei wp-config.php ist eine der wichtigsten Dateien in Bezug auf Ihre WordPress-Installation. Sie beinhaltet so viel mehr als nur den Ort, an dem Ihre Datenbankeinstellungen gespeichert werden. Sehen Sie, was Sie sonst noch in Ihrer WordPress-Konfigurationsdatei haben. Ehrlich gesagt übersehen die meisten Entwickler viele der großartigen Funktionen, die in der Datei wp-config.php verborgen sind.
Dieses Tutorial wurde entwickelt, um einige der weniger bekannten Funktionen und Features vorzustellen , die ihr mit nur wenigen einfachen Codezeilen verwenden könnt. Diese könnt ihr in eure wp-config.php Datei hinzugefügen. Dabei handelt es sich um Funktionen, die häufig von Plugins verarbeitet werden.
Bitte unterstützt meine Arbeit
Einblick in die Wordpress Config Datei
Erzwingen der SSL-Nutzung für Anmeldungen und Admin-Backend
Bei der Übertragung von Passwörtern und anderen sensiblen Informationen über einen Browser ist eine SSL-Verbindung entscheidend. Daher möchtet ihr möglicherweise SSL für eure Anmeldeseiten und/oder für euer WordPress- Admin-Backend aktivieren. Anstatt dafür Plugins zu installieren, könnt ihr beide Anforderungen mit ein paar einfachen Codezeilen erfüllen:
/* Force SSL on Login Pages */
define( 'FORCE_SSL_LOGIN', true );
/* Force SSL for Admin Backend */
define( 'FORCE_SSL_ADMIN', true );
Sicherheitsschlüssel zur Authentifizierung
Gleich mehrere Schlüssel (engl. keys) und Salze (engl. salts) stellen sicher, dass bei der Verschlüsselung von Informationen (z.B. Cookies) genügend Variationen erzeugt werden. Dies erschwert es Hackern, an vertrauliche Daten zu kommen und trägt somit maßgeblich zur Sicherheit deiner Website bei.
define('AUTH_KEY', 'dein einzigartiger Token');
define('SECURE_AUTH_KEY', 'dein einzigartiger Token');
define('LOGGED_IN_KEY', 'dein einzigartiger Token');
define('NONCE_KEY', 'dein einzigartiger Token');
define('AUTH_SALT', 'dein einzigartiger Token');
define('SECURE_AUTH_SALT', 'dein einzigartiger Token');
define('LOGGED_IN_SALT', 'dein einzigartiger Token');
define('NONCE_SALT', 'dein einzigartiger Token');
Je länger, kryptischer und einzigartiger diese Werte sind, desto besser. WordPress stellt dafür einen Onlinegenerator zur Verfügung, bei dem ihr den ganzen Block nur noch kopieren und in eure Konfigurationsdatei einfügen müsst.
Editieren von Dateien im Backend verbieten
Im Backend unter Design > Editor lässt sich der Programmcode verschiedenster Dateien direkt anpassen. Das kann bei mangelnder Expertise zu großen Problemen führen. Deswegen empfiehlt es sich diese Möglichkeit zu deaktivieren:
define('DISALLOW_FILE_EDIT', TRUE); // Das Editieren der Dateien unterbinden
Wollt ihr noch einen Schritt weitergehen, könnt ihr auch die Plug-in- und Theme-Installation sowie deren Updates deaktivieren. Wenn ihr diesen Eintrag setzt, wird auch der Plug-in- und Theme-Editor deaktiviert (d. h. ihr könnt euch DISALLOW_FILE_EDIT sparen).
define( 'DISALLOW_FILE_MODS', true );
WP-Content Ordner verschieben
Ihr könnt das wp-content-Verzeichnis, das eure Themes, Plugins und Uploads enthält, außerhalb des WordPress-Anwendungsverzeichnisses verschieben. Das macht es für automatisierte Angriffe durch Bots schwieriger, eventuell vorhandene Sicherheitslücken auszubutzen.
Setzt WP_CONTENT_DIR auf den vollständigen lokalen Pfad dieses Verzeichnisses (ohne nachgestellten Schrägstrich), z. B.
define( 'WP_CONTENT_DIR', dirname(__FILE__) . '/blog/wp-content' );
Setzt WP_CONTENT_URL auf die vollständige URL dieses Verzeichnisses (ohne abschließenden Schrägstrich), z. B.
define( 'WP_CONTENT_URL', 'http://example/blog/wp-content' );
wp-config.php verschieben
Wie ihr mittlerweile vielleicht mitbekommen habt, ist die wp-config.php wohl die wichtigste Datei einer WordPress-Installation. Daher gilt es, diese so sicher und versteckt wie möglich zu halten. Ihr könnt die Datei unter anderem auch in ein anderes Verzeichnis verschieben, wo sie nicht erwartet wird.
WordPress sucht automatisch in einem Verzeichnis über Ihrer WordPress-Installation nach Ihrer wp-config.php Datei. Wenn ihr diese also dorthin verschoben habt, seid ihr fertig!
Aber was ist, wenn ihr die Datei woanders hinlegen wollt? Einfach. Erstellt eine neue wp-config.php im WordPress-Verzeichnis mit dem folgenden Code:
<?php
/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
/** Location of your WordPress configuration. */
require_once(ABSPATH . '../phpdocs/wp-config.php');
Stellt sicher, dass ihr den obigen Pfad in den tatsächlichen Pfad eurer verschobenen wp-config.php Datei ändert.
Wenn ihr auf ein Problem mit open_basedir stoßen solltet, fügt einfach den neuen Pfad zur open_basedir Direktive in eure PHP-Konfiguration hinzu:
open_basedir = "/var/www/vhosts/example.com/httpdocs/;/var/www/vhosts/example.com/phpdocs/;/tmp/"
Das ist es!
Post-Revisionen ein-/ausschalten und ihre Grenzen festlegen
Beitragsrevisionen können äußerst hilfreich sein, wenn ihr versehentlich die falsche Änderung an einer Seite/einem Beitrag vornehmen und am Ende Dinge kaputt macht. Allerdings hat Wordpress standardmäßig keine Grenze für Post Revisionen eingestellt und dies kann im Laufe der Zeit zu einer sehr großen Datenbank führen. Dies könnt ihr allerdings ganz einfach mit eurer Datei wp-config.php steuern:
/* Turn Off Post Revisions. */
define( 'WP_POST_REVISIONS', false );
/* Set Maximum Number of Revisions. */
define( 'WP_POST_REVISIONS', '10' );
Automatischen Speicherintervall anpassen
Mit folgendem Befehl könnt ihr den automatischen Speicherintervall von Wordpress abändern:
define('AUTOSAVE_INTERVAL', 30); //Save all 30 seconds (Standard 60)
Papierkorb leeren
Auch im „Papierkorb“ sammelt sich schnell viel virtueller Datenmüll. Für das automatische löschen, bzw. die Deaktivierung des Papierkorbs gib es den folgenden Code:
define('EMPTY_TRASH_DAYS', 60); //Alle 60 Tage wir der Papierkorb geleert
define('EMPTY_TRASH_DAYS', 0); //Der Papierkorb wird sofort geleert
Geschwindigkeit erhöhen und WordPress schlank halten
Auch für die Verkürzung der Ladezeit eurer Website hat WordPress Einstellungsmöglichkeiten vorgesehen. WordPress hat zum Beispiel ein integriertes Caching-System, das sich in wp-content/advanced-cache.php befindet. Es kann mit der WP_CACHE-Konstante aktiviert werden:
define('WP_CACHE', true); //Den internen Cache von WordPress aktivieren
Mit der folgenden Zeile könnt ihr die Datenbank von WordPress reparieren und auch die Inhalte optimieren. Dies kann notwendig werden, wenn die Website langsamer wird oder sich unerklärliche 404er-Fehler häufen. Nach dem Aktivieren des Codes können Sie http://ihredomain.de/wp-admin/maint/repair.php die Reparatur und/oder Optimierung durchführen. Nach der Optimierung solltet ihr die Zeile aus Gründen der Sicherheit wieder aus der Konfigurationsdatei löschen!
define('WP_ALLOW_REPAIR', true); //Datenbank reparieren und optimieren
WordPress bietet ein paar Features, die den Inhalt automatisch verschönern sollen. Eine dieser Funktionen ist das Darstellen von Emojis durch Austausch von Zeichen wie 😉 durch entsprechender Bildchen. Diese Emojis müssen extern geladen werden und verlangsamen so die Ladezeit eurer Website. Benötigt ihr dieses Gimmick nicht empfiehlt sich die Funktion zu deaktivieren:
define( 'WP_EMOICONS', false );
Standardmäßig erstellt WordPress jedes Mal, wenn ihr ein Bild bearbeitet, einen neuen Satz von Bildern, und wenn ihr das Original wiederherstellt, werden alle Änderungen auf dem Server gespeichert. Der folgende Code ändert dieses Verhalten:
define( 'IMAGE_EDIT_OVERWRITE', true );
Upload-Datenformate freigeben
WordPress beschränkt aus Sicherheitsgründen das Hochladen von Dateien auf einige Dateiformate. Versucht ihr ein unerlaubtes Format hochzuladen, erhaltet ihr die Fehlermeldung „Dieser Dateityp ist aus Sicherheitsgründen leider nicht erlaubt.“
Auch die folgende Funktion kann duch die Server-Einstellung limitiert sein, aber ihr könnt versuchen, mit dem folgenden Code, sämtliche Datenformate freizugeben:
define('ALLOW_UNFILTERED_UPLOADS', true);
Dateien, Skripte und CSS-Stile komprimieren
Heutzutage ist die Leistung von Websites extrem wichtig, und WordPress verfügt über eine Reihe integrierter Komprimierungsfunktionen, die von den meisten oft übersehen werden:
/* Compress All CSS Files */
define( 'COMPRESS_CSS', true );
/* Compress All JS Files */
define( 'COMPRESS_SCRIPTS', true );
/* Turn On GZIP Compression */
define( 'ENFORCE_GZIP', true );
/* Turn On CONCATENATE SCRIPTS */
define('CONCATENATE_SCRIPTS', true );
Speichernutzung steuern
Die Speicherkontrolle ist normalerweise etwas, mit dem sich die meisten Webmaster im Laufe des Betriebs einer WordPress-Website befassen werden. In der Datei wp-config.php eurer Website könnt ihr zwei verschiedene Limits festlegen. Ihr könnt das PHP-Speicherlimit festzulegen – etwas, das ihr normalerweise mit eurer php.ini-Datei tun würdet.
Das PHP-Speicherlimit ist in WordPress-Standardinstallationen auf 30M festgelegt. Mit der anderen Option könnt ihr den maximalen Speicher festlegen, den WordPress verwenden soll – der standardmäßig auf 256 MB eingestellt ist. Benötigt ihr mehr Speicher, fügt einfach die folgenden Zeilen in eure wp-config.php-Datei ein:
/* PHP Memory Limit */
define( 'WP_MEMORY_LIMIT', '64' );
/* Maximum WordPress Memory Limit */
define( 'WP_MAX_MEMORY_LIMIT', '512' );
Richtet einen Papierkorb/Papierkorb für eure Medien ein
Habt ihr jemals eine Mediendatei gelöscht und sofort gemerkt, dass ihr einen massiven Fehler gemacht habz und absolut kein Backup dieses Bildes hattet? Aus diesem Grund hat WordPress den Papierkorb erstellt – etwas, das standardmäßig für Beiträge/Seiten aktiviert ist, jedoch nicht für Medienelemente. Zum Glück lässt sich das schnell ändern!
/* Turn On Media Trash. */
define( 'MEDIA_TRASH', true );
WordPress-URLs definieren
Zwar könnt ihr direkt im Backend von WordPress unter Einstellungen > Allgemein die WordPress-URLs bestimmen, wenn ihr aber sicher gehen wollt, dass die Einstellungen nicht aus Versehen geändert oder gelöscht werden, dann tragt sie am besten direkt in die wp-config.php ein. Dieser Eintrag ist dann im Backend nicht anpassbar.
define('WP_HOME','https://ihredomain.de'); //WordPress-Adresse (Backend)
define('WP_SITEURL','https://ihredomain.de'); //Website-Adresse (Startseite)
Automatische Updates bestimmen
Die aktuellen Versionen von WordPress bieten automatische Updates.Wenn euch das zu riskant ist – bei jedem Update kann schließlich etas schief gehen – können ihr mit folgenden Befehlen die Updates kontrollieren:
define('AUTOMATIC_UPDATER_DISABLED', true); //Automatische Updates generell abschalten
define( 'WP_AUTO_UPDATE_CORE', false ); //Deaktivieren Sie alle WordPress-Updates
define( 'WP_AUTO_UPDATE_CORE', true ); //Aktivieren Sie alle WordPress-Updates, einschließlich großer und kleiner Versionssprüngen
define( 'WP_AUTO_UPDATE_CORE', 'minor' ); //Das ist der Standard, es werden nur die Service-Updates automatisch durchgeführt
Relative Links für Dateien und Medien (Uploads)
Ladet ihr Dateien in WordPress hoch werden sie immer unter der vollständigen (absoluten) URL verlinkt (also inklusive http und Domain: „https://example.com/wp-content/uploads/2019/04/….„). Beim Umzug auf eine andere Domain müssen alle diese Links aktualisiert werden. Das kann mit folgendem Eintrag verhindert werden. WordPress setzt dann künftig nur noch relative Links („/wp-content/uploads/2019/04/….„):
define( 'WP_CONTENT_URL', '/wp-content');
Upload-Verzeichnis für Dateien und Medien ändern
Auch für das Anpassen des Upload-Verzeichnisses gibt es einen Eintrag. Im folgenden Beispiel werden die Medien künftig im Unterverzeichnis /wp-content/medien/2021/01/…. abgelegt:
define( 'UPLOADS', 'wp-content/medien' );
Hinweis: Wenn ihr bereits Dateien in der Medienbibliothek habt, müssen diese verschoben und alle Verweise auf den alten Uploads-Ordner in der Datenbank geändert werden, wenn alles konsistent sein soll.
Datenbank-Tabellenpräfix
WordPress legt alle Tabellen in der Datenbank mit dem Präfix wp_ an. Dieses Präfix könnt ihr bei der Installation festlegen. Es dient in erster Linie zur Kennung, z.B. bei mehreren WordPress-Installationen innerhalb einer Datenbank. Bei der Wahl eines eigenen Präfixes müsst ihr darauf achten, dass ihr nur Buchstaben, Zahlen und Unterstriche verwenden dürft.
$table_prefix = 'wp_';
Jetzt müsst ihr das Präfix in der bereits bestehenden Datenbank ändern. Hierzu loggt ihr euch in PHPMyAdmin ein, markiert alle gewünschten Tabellen und im Dropdown-Menü wählt ihr „Tabellenprefix ersetzen“. Im nachfolgenden Fenster müsst ihr lediglich das alte (Standard ist „wp_„) und das neue Präfix (Zum Beispiel “4dj39fyL_“) eingeben und bestätigen.
Hoffentlich konntet ihr durch dieses Tutorial etwas Neues lernen und hat euch vielleicht sogar geholfen, ein oder zwei Plugins loszuwerden – und so eure WordPress-Installation zu schmälern! Postet wie immer alle Fragen, die ihr habt in den Kommentaren unten!