Articles

WordPress Konfigurationstricks

Viele WordPress-Benutzer kennen die wp-config.php-Datei als Schlüssel zur WordPress-Datenbank. Hier werden der Datenbankname, der Benutzername, das Passwort und der Speicherort festgelegt (neben anderen Dingen wie Sicherheitsschlüssel, Datenbankpräfix und lokalisierte Sprache).

Hier ist ein Screenshot von wp-config.php (auch bekannt als die WordPress-Konfigurationsdatei) für diejenigen, die vielleicht noch nicht vertraut sind:

The WordPress Configuration File, wp-config.phpDie wp-config.php-Datei enthält die Informationen, die WordPress benötigt, um sich mit der Datenbank zu verbinden

Was viele Benutzer jedoch nicht wissen, ist, dass die wp-config.php-Datei verwendet werden kann, um eine Vielzahl von Konfigurationseinstellungen festzulegen, die es Ihnen ermöglichen, die Funktionalität, Leistung und Sicherheit Ihrer mit WordPress betriebenen Website zu verbessern. In diesem Artikel zeige ich so viele dieser Konfigurationstricks, wie ich im Laufe der Jahre sammeln konnte. Dieser Leitfaden deckt alles ab, was im WordPress Codex steht, sowie einige zusätzliche Tricks, die Sie wahrscheinlich noch nicht gesehen haben. Wenn Sie weitere WordPress-Konfigurationstricks kennen, teilen Sie sie in den Kommentaren mit und ich werde sie dem Beitrag hinzufügen.

Update! Im Folgeartikel finden Sie weitere WordPress-Konfigurationstricks: „

Database Credentials *

Dieser Satz von vier Konfigurationsdefinitionen ist erforderlich, damit WordPress eine Verbindung zur Datenbank herstellen kann:

define('DB_NAME', 'database-name');define('DB_USER', 'database-username');define('DB_PASSWORD', 'database-password');define('DB_HOST', 'localhost');

Datenbankname, Benutzername und Kennwort sollten Ihnen bei der Erstellung der Datenbank leicht zur Verfügung stehen, aber der DB_HOST-Wert kann schwieriger zu beschaffen sein. Meistens ist dieser Wert einfach „localhost„, aber wenn das nicht funktioniert, sind hier einige andere Werte, die Sie ausprobieren können:

  • 1und1 Hosting – db12345678
  • DreamHost – mysql.example.com
  • GoDaddy – h41mysql52.secureserver.net
  • ICDSoft – localhost:/tmp/mysql5.sock
  • MediaTemple (GS) – internal-db.s44441.gridserver.com
  • Pair Networks – dbnnnx.pair.com
  • Yahoo – mysql

Sie können sogar einen alternativen Port für Ihren Datenbankserver angeben. Hier sind zwei Beispiele:

define('DB_HOST', 'localhost:1234');
define('DB_HOST', 'mysql.domain.tld:1234');

Ein weiterer cooler Trick ist, den Wert des Datenbankservers automatisch zu erkennen:

define('DB_HOST', $_ENV{DATABASE_SERVER});

Wenn alle diese Maßnahmen fehlschlagen oder Sie immer noch Probleme haben, wenden Sie sich an Ihren Hosting-Anbieter.

Datenbankzeichensatz und Sortierung *

Ab WordPress Version 2.2 können Sie einen Zeichensatz für Ihre MySQL-Datenbanktabellen angeben. Im Allgemeinen gibt es keinen Grund, den Standardzeichensatz UTF-8 zu ändern, der normalerweise perfekt ist, da er alle Sprachen unterstützt. Hier ist die standardmäßige (und empfohlene) Einstellung:

define('DB_CHARSET', 'utf8');

WordPress Version 2.2 ermöglicht Ihnen auch die Angabe der Sortierung, d.h. der Sortierreihenfolge Ihres Datenbankzeichensatzes. Die Einstellung der Sortierreihenfolge wird im Allgemeinen automatisch von MySQL entsprechend dem Zeichensatz vorgenommen, der aktiviert wird, indem der Wert für die Sortierreihenfolge leer gelassen wird, wie es in der Standardeinstellung für diese Definition geschieht. Hier die standardmäßige (und empfohlene) Einstellung:

define('DB_COLLATE', '');
Hinweis: Verwenden Sie diese beiden Definitionen nur, wenn sie bereits in Ihrer wp-config.php-Datei vorhanden sind.

Sicherheitsschlüssel *

Seit WordPress 2.7 sind vier Sicherheitsschlüssel verfügbar, die eine bessere Cookie-Verschlüsselung gewährleisten sollen. Diese Schlüssel arbeiten unbemerkt im Hintergrund und sollten so zufällig und kompliziert wie möglich sein (nein, Sie werden sie sich nie merken müssen). Der einfachste Weg, diese Schlüssel zu generieren, ist, dies automatisch über den WordPress.org secret-key service zu tun. Besuchen Sie einfach diesen Link und kopieren Sie die Ergebnisse in Ihre wp-config.php-Datei. Beachten Sie, dass diese Schlüssel jederzeit geändert werden können und dass dadurch alle bestehenden Cookies Ihrer Benutzer ungültig werden, so dass sie sich erneut bei Ihrer Website anmelden müssen.

define('AUTH_KEY', ':dr+%/5V4sAUG-gg%aS*v;&xGhd%{YV)p:Qi?jXLq,<h\`39');define('SECURE_AUTH_KEY', '@*+S=8\"\'+\"}]<m#+}V)p:Qi?jXLq,<h\`39m_(');define('LOGGED_IN_KEY', 'S~AACm4h1;T^\"qW3_8Zv!Ji=y|)~5i63JI |Al.'/path/to/wordpress');define('WP_SITEURL', 'http://'.$_SERVER.'/path/to/wordpress');

Wenn Sie diese Werte auf einer öffentlichen Website verwenden, ist es wahrscheinlich am besten, sie zu umgehen.

Vorlagenpfad und Stylesheet-Pfad

Wie bei den vordefinierten Konstanten für die Blog-Adresse und die Website-Adresse (siehe vorheriger Abschnitt) können Sie auch die Leistung steigern, indem Sie die Datenbankabfragen für den Vorlagenpfad und den Stylesheet-Pfad für Ihre Website eliminieren. Hier sind die Standardwerte für diese beiden Definitionen:

define('TEMPLATEPATH', get_template_directory());define('STYLESHEETPATH', get_stylesheet_directory());

Diese beiden Definitionen fragen zwar immer noch die Datenbank ab, aber wir können diese überflüssigen Abfragen eliminieren, indem wir die Werte hartcodieren:

define('TEMPLATEPATH', '/absolute/path/to/wp-content/themes/active-theme');define('STYLESHEETPATH', '/absolute/path/to/wp-content/themes/active-theme');

Cache und Cache-Ablauf deaktivieren

Diese beiden Optionen gelten für ältere WordPress-Versionen, die noch den standardmäßigen objektbasierten Caching-Mechanismus verwenden. Die erste Definition ermöglicht es Ihnen, den Cache zu aktivieren oder zu deaktivieren, während die zweite Definition es Ihnen ermöglicht, die Ablaufzeit des Caches festzulegen.

Cache aktivieren

define('WP_CACHE', true); // enable the cachedefine('ENABLE_CACHE', true); // enable the cachedefine('CACHE_EXPIRATION_TIME', 3600); // in seconds

Cache deaktivieren

define('WP_CACHE', false); // disable the cachedefine('DISABLE_CACHE', true); // disable the cache

Cookie-Domain festlegen

Es gibt mehrere Gründe, warum Sie eine Cookie-Domain für Ihre Website festlegen möchten. Ein häufiges Beispiel ist das Verhindern, dass Cookies bei Anfragen für statische Inhalte auf Subdomains gesendet werden. In diesem Fall würden Sie diese Definition verwenden, um WordPress anzuweisen, Cookies nur an Ihre nicht-statische Domain zu senden. Dies kann eine erhebliche Leistungssteigerung bedeuten. Hier sind einige Beispiele für die Einstellung verschiedener Cookie-Pfad- und Cookie-Domain-Informationen:

define('COOKIE_DOMAIN', '.digwp.com'); // don't omit the leading '.'define('COOKIEPATH', preg_replace('|https?://+|i', '', get_option('home').'/'));define('SITECOOKIEPATH', preg_replace('|https?://+|i', '', get_option('siteurl').'/'));define('PLUGINS_COOKIE_PATH', preg_replace('|https?://+|i', '', WP_PLUGIN_URL));define('ADMIN_COOKIE_PATH', SITECOOKIEPATH.'wp-admin');

Dateiberechtigungen außer Kraft setzen

Wenn die Standard-Dateiberechtigungen Ihres Webhosts zu restriktiv sind, kann das Hinzufügen dieser Definitionen zu Ihrer WordPress-Konfigurationsdatei helfen, das Problem zu lösen. Beachten Sie, dass Sie die Anführungszeichen um die Berechtigungswerte nicht benötigen. Zum Beispiel:

define('FS_CHMOD_FILE', 0755);define('FS_CHMOD_DIR', 0755);

Alle definierten Konstanten anzeigen

Sollen alle vordefinierten Konstanten angezeigt werden? Gute Neuigkeiten, diese PHP-Funktion gibt ein Array aller aktuell definierten Konstanten zurück:

print_r(@get_defined_constants());

Benutzer- und Usermetatabellen

Wie wäre es mit benutzerdefinierten Benutzer- und Usermetatabellen? Ja, auch das ist möglich, und zwar mit den folgenden Definitionen:

define('CUSTOM_USER_TABLE', $table_prefix.'my_users');define('CUSTOM_USER_META_TABLE', $table_prefix.'my_usermeta');

FTP/SSH-Konstanten

Dieser Satz von Konfigurationsdefinitionen soll Benutzern helfen, FTP/SSH-Verbindungen zu finden und zu nutzen. Hier ist ein Beispielsatz vordefinierter Konstanten für FTP/SSH-Updates:

define('FS_METHOD', 'ftpext'); // forces the filesystem method: "direct", "ssh", "ftpext", or "ftpsockets"define('FTP_BASE', '/path/to/wordpress/'); // absolute path to root installation directorydefine('FTP_CONTENT_DIR', '/path/to/wordpress/wp-content/'); // absolute path to "wp-content" directorydefine('FTP_PLUGIN_DIR ', '/path/to/wordpress/wp-content/plugins/'); // absolute path to "wp-plugins" directorydefine('FTP_PUBKEY', '/home/username/.ssh/id_rsa.pub'); // absolute path to your SSH public keydefine('FTP_PRIVKEY', '/home/username/.ssh/id_rsa'); // absolute path to your SSH private keydefine('FTP_USER', 'username'); // either your FTP or SSH usernamedefine('FTP_PASS', 'password'); // password for FTP_USER usernamedefine('FTP_HOST', 'ftp.domain.tld:21'); // hostname:port combo for your SSH/FTP server

Verschieben des wp-content-Verzeichnisses

Ab WordPress Version 2.6 können Sie den Standardort des wp-contentVerzeichnisses ändern. Dafür gibt es mehrere gute Gründe, darunter die Erhöhung der Sicherheit der Website und die Erleichterung von FTP-Updates. Einige Beispiele:

// full local path of current directory (no trailing slash)define('WP_CONTENT_DIR', $_SERVER.'/path/wp-content'); // full URI of current directory (no trailing slash)define('WP_CONTENT_URL', 'http://domain.tld/path/wp-content');

Sie können auch einen eigenen Pfad für Ihr plugins-Verzeichnis angeben. Dies kann bei Kompatibilitätsproblemen mit bestimmten Plugins helfen:

// full local path of current directory (no trailing slash)define('WP_PLUGIN_DIR', $_SERVER.'/path/wp-content/plugins'); // full URI of current directory (no trailing slash)define('WP_PLUGIN_URL', 'http://domain.tld/path/wp-content/plugins');

Umgang mit Beitragsrevisionen

Neuere Versionen von WordPress bieten ein Beitragsrevisionssystem, das es Benutzern ermöglicht, verschiedene Versionen ihrer Blogbeiträge zu speichern und bei Bedarf sogar zu vorher gespeicherten Versionen zurückzukehren. Unabhängig davon, wie sehr Sie diese erstaunliche Funktion verachten oder nicht, hier sind ein paar Konfigurationsdefinitionen, die sich für Sie als nützlich erweisen könnten 😉

Die Anzahl der gespeicherten Revisionen begrenzen

define('WP_POST_REVISIONS', 3); // any integer, but don't get too crazy

Die Post-Revisioning-Funktion deaktivieren

define('WP_POST_REVISIONS', false);

Das Autosave-Intervall festlegen

In ähnlicher Weise wie die Post-Revisioning-Funktion ist WordPress‘ tatsächlich nützliche Autosave-Funktion. Standardmäßig speichert WordPress Ihre Arbeit alle 60 Sekunden, aber Sie können diese Einstellung ganz nach Ihren Wünschen ändern. Übertreiben Sie es aber nicht, es sei denn, Sie wollen Ihren Server stressen 😉

define('AUTOSAVE_INTERVAL', 160); // in seconds

WordPress debuggen

Seit WordPress Version 2.3.1 können Benutzer bestimmte Fehler und Warnungen anzeigen lassen, um die Fehlersuche auf ihrer Website zu erleichtern. Seit der WordPress-Version 2.5 wird durch die Aktivierung der Fehlerberichterstattung die Berichtsebene auf E_ALL angehoben und Warnungen für veraltete Funktionen werden aktiviert. Standardmäßig (d.h. wenn keine Definition in der wp-config.php-Datei angegeben ist) ist die Fehlerberichterstattung deaktiviert.

define('WP_DEBUG', true); // enable debugging modedefine('WP_DEBUG', false); // disable debugging mode (default)

Fehlerprotokoll-Konfiguration

Hier ist eine einfache Möglichkeit, die grundlegende Fehlerprotokollierung für Ihre WordPress-Website zu aktivieren. Erstellen Sie eine Datei namens „php_error.log„, machen Sie sie für den Server beschreibbar und legen Sie sie in einem Verzeichnis Ihrer Wahl ab. Bearbeiten Sie dann den Pfad in der dritten Zeile des folgenden Codes und fügen Sie ihn in Ihre wp-config.php-Datei ein:

@ini_set('log_errors','On');@ini_set('display_errors','Off');@ini_set('error_log','/home/path/domain/logs/php_error.log');

Erhöhen Sie den PHP-Speicher

Wenn Sie Fehlermeldungen erhalten, die Sie darauf hinweisen, dass die „zulässige Speichergröße von xxx Bytes erschöpft ist“, kann diese Einstellung helfen, das Problem zu lösen. Ab WordPress Version 2.5 ermöglicht die WP_MEMORY_LIMIT-Definition die Angabe der maximalen Speichergröße, die von PHP verwendet werden darf. Standardmäßig versucht WordPress automatisch, den PHP-Speicher auf bis zu 32 MB zu erhöhen, so dass diese Einstellung nur für Werte über 32 MB erforderlich ist. Beachten Sie, dass einige Webhosts die Möglichkeit, den PHP-Speicher zu erhöhen, deaktivieren, so dass Sie möglicherweise darum betteln müssen. Hier einige Beispiele:

define('WP_MEMORY_LIMIT', '64M');define('WP_MEMORY_LIMIT', '96M');define('WP_MEMORY_LIMIT', '128M');

Speichern und Anzeigen von Datenbankabfragen zur Analyse

Diese Technik eignet sich hervorragend zum Speichern von Datenbankabfragen und zum Anzeigen der Informationen zur späteren Analyse. Der Prozess speichert jede Abfrage, ihre zugehörige Funktion und ihre Gesamtausführungszeit. Diese Informationen werden als Array gespeichert und können auf jeder Themenvorlagenseite angezeigt werden. Fügen Sie dazu zunächst die folgende Direktive in Ihre wp-config.php-Datei ein:

define('SAVEQUERIES', true);

Dann platzieren Sie in der Fußzeile Ihres aktiven Themes den folgenden Code:

// display the query array for admin onlyif (current_user_can('level_10')) {global $wpdb;echo "<pre>";print_r($wpdb->queries);echo "</pre>";}

Hier ist eine einzeilige Version dieser Funktion:

<?php if (current_user_can('level_10')) { global $wpdb; echo "<pre>"; print_r($wpdb->queries); echo "</pre>"; } ?>

Control Proxy Access

Seit WordPress 2.8 kann die Konfigurationsdatei verwendet werden, um Konstanten zu definieren, die den Zugriff auf bestimmte Hosts von einem Proxy-Server aus blockieren, erlauben oder filtern. Wenn Sie zum Beispiel Ihre WordPress-Site in einem Intranet-Netzwerk hosten, können Sie den Zugriff auf alle externen Hosts verhindern und nur Anfragen von localhost und Ihrem Blog zulassen, indem Sie die erste Definition unten verwenden. Sie können auch den Zugriff auf bestimmte Hosts mit einer kommagetrennten Liste zulässiger Hostnamen erlauben, wie in der dritten Definition unten gezeigt wird.

define('WP_HTTP_BLOCK_EXTERNAL', true); // block external requestsdefine('WP_HTTP_BLOCK_EXTERNAL', false); // allow external requestsdefine('WP_ACCESSIBLE_HOSTS', 'api.wordpress.org'); // whitelist hosts
Beachten Sie, dass Sie den api.wordpress.org-Zugriff erlauben sollten, um die ordnungsgemäße Funktionalität von Kerndateien und Plugins zu gewährleisten.

Wow! Ich bin fix und fertig. Zeit für eine kleine Pause 🙂

Hinweise

  • * Zeigt an, dass der Code in der Standard wp-config.php Datei enthalten ist
  • Brasilianische portugiesische Übersetzung (von Tárcio Zemel)