WordPress Admin Hacks

Eine Sammlung von WordPress Befehlen und PHP Scripten zur Verbesserung des Systems.

Code für wp-config.php

Die folgenden Einstellungen müssen in der wp-config.php gesetzt werden.

Debug Modus

Die folgenden Zeilen aktivieren sowohl das WP_DEBUG_LOG als auch die Ausgabe von PHP Fehlern im Frontend.

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', true);

Papierkorb Aufbewahrungsdauer

Wie lange werden gelöschte Posts & Beiträge in der Datenbank aufbewahrt? Mit dem folgenden Code kann die Aufbewahrung z.B. auf 365 Tage gesetzt werden.

define('EMPTY_TRASH_DAYS', 365 );

WP-Cron deaktivieren

Der WordPress Cron führt geplante Hintergrundprozesse aus. Im Standard werden diese über Seitenbesucher ausgelöst und dann während der Seitenaufbereitung durchlaufen. Das kann zur Folge haben, dass die Seitenladezeit in einigen Fällen sehr lange braucht.

define('DISABLE_WP_CRON', true);

Nach Deaktivierung in WordPress ist es essentiell, dass mittels Server-Cron-Jobs ein externer Aufruf des WordPress-Cron aktiviert wird. Hierfür gibt es zwei Ansätze.

1. Cronjob per direkten HTTP-Aufruf

Du kannst den Cronjob in deiner Crontab hinzufügen, um regelmäßig wp-cron.php auszuführen:

* * * * * curl -s https://deine-domain.de/wp-cron.php?doing_wp_cron > /dev/null 2>&1

Erklärung:

  • * * * * * → führt den Cronjob jede Minute aus.
  • curl -s → ruft die URL still auf.
  • > /dev/null 2>&1 → unterdrückt die Ausgabe.
  • ?doing_wp_cron ist optional, aber empfohlen, damit WordPress korrekt erkennt, dass es sich um einen Cron-Aufruf handelt.

2. Cronjob per PHP-CLI (lokaler Aufruf)

Wenn du direkten Serverzugriff hast, ist es besser, die wp-cron.php lokal auszuführen:

* * * * * /usr/bin/php /var/www/html/wp-cron.php > /dev/null 2>&1

Erklärung:

  • /usr/bin/php → Pfad zur PHP-Binary (ggf. mit which php prüfen).
  • /var/www/html/wp-cron.php → absoluter Pfad zu deiner WordPress-Installation. Je nach Hosting-Provider oder Serverkonfiguration kann dieser abweichend sein.

3. Cronjob per WP-CLI

Falls WP-CLI installiert ist, kannst du Cronjobs eleganter triggern:

* * * * * /usr/local/bin/wp cron event run --due-now --path=/var/www/html > /dev/null 2>&1

Erklärung:

  • /usr/local/bin/wp → Pfad zur WP-CLI (ggf. mit which wp prüfen).
  • cron event run --due-now → führt alle überfälligen Cron-Events aus.
  • --path=/var/www/html → Pfad zu deiner WordPress-Installation.

WordPress Standard Files

Manchmal braucht man einfach die WordPress Standard Files um Dateien nach einem Malware Infect wiederherzustellen oder nach Servermigrationen zurückzusetzen. Eine kleine Sammlung der Standarddateien.

.htaccess

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

WordPress Action Scheduler Tuning

⚠️ Vorsicht: batch_size * concurrent_batches = Gesamtzahl der PHP Executions (muss vom Server unterstützt werden, sonst kann die Einstellung den Server überlasten.

Der folgende Code kann z.B. in der functions.php hinterlegt werden:

/*
 * Action Scheduler Performance Options
 */

function eg_increase_action_scheduler_batch_size( $batch_size ) {
    return 5;
}
add_filter( 'action_scheduler_queue_runner_batch_size', 'eg_increase_action_scheduler_batch_size' );

function eg_increase_action_scheduler_concurrent_batches( $concurrent_batches ) {
    return 2;
}
add_filter( 'action_scheduler_queue_runner_concurrent_batches', 'eg_increase_action_scheduler_concurrent_batches' );

function eg_increase_time_limit( $time_limit ) {
    return 600;
}
add_filter( 'action_scheduler_queue_runner_time_limit', 'eg_increase_time_limit' );

Domainübertragung in Datenbank durchsetzen

Für diesen Task nutzen wir das Plugin „Better Search & Replace“.

Durchlauf 1 mit //domain.tld
Durchlauf 2 mit \/\/domain.tld wegen Gutenberg

Schreibe einen Kommentar

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