Trick # 611 | Dieser Beitrag beinhaltet 0 Wörter. – Geschätzte Lesezeit: ca. 0 Minuten.
Die Datei wp-config.php ist eine der zentralen Dateien in WordPress. Sie enthält wichtige Konfigurationsdetails wie Datenbankinformationen, Sicherheitsschlüssel und andere essentielle Einstellungen. Allerdings ist die Bearbeitung dieser Datei direkt über das Backend standardmässig nicht möglich. In diesem Beitrag zeigen wir Ihnen, wie Sie eine komfortable Möglichkeit kreieren können, um die Datei direkt in WordPress zu bearbeiten.
Die Bearbeitung der wp-config.php-Datei kann erforderlich sein, wenn Sie Änderungen an Ihrer WordPress-Installation vornehmen möchten, z. B.:
- Hinzufügen von Debugging-Optionen
- Anpassen von Speicherlimits oder PHP-Einstellungen
- Konfiguration zusätzlicher Sicherheitsmassnahmen
Ein eigener Editor im WordPress-Backend bietet Ihnen direkten Zugriff auf diese Datei, ohne auf externe Tools wie FTP oder Hosting-Dashboards angewiesen zu sein. Allerdings sollten Sie bei der Bearbeitung dieser Datei immer vorsichtig sein, da Fehler schwerwiegende Auswirkungen auf Ihre Website haben können. Ein Backup der bisherigen Datei-Version ist ratsam – darum richten wir auch gleich einen Download-Button ein.
Kopieren Sie also den folgenden Textblock in Ihre Datei «functions.php». Diese finden Sie im Backend unter Design/Theme-Datei-Editor:
add_action('admin_menu', function () {
// Zeige den Menüpunkt nur für Administratoren
if (current_user_can('manage_options')) {
add_menu_page(
'WP-Config-Editor',
'WP-Config-Editor',
'manage_options',
'wp-config-editor',
'wp_config_editor_page',
'dashicons-edit',
90
);
}
});function wp_config_editor_page() {
// Überprüfen, ob der Benutzer Administratorrechte hat
if (!current_user_can('manage_options')) {
wp_die('<p>Sie haben keine Berechtigung, diese Seite aufzurufen.</p>');
}$wp_config_path = ABSPATH . 'wp-config.php';
$error_message = '';// Prüfe, ob die Datei bearbeitet werden soll
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (!isset($_POST['confirm_edit']) || $_POST['confirm_edit'] !== 'yes') {
$error_message = '<div class="error"><p><strong>Warnung:</strong> Sie müssen bestätigen, dass Sie die Risiken verstehen, bevor Sie die Datei bearbeiten können!</p></div>';
} else {
if (isset($_POST['wp_config_content'])) {
// Schreibe Änderungen in die wp-config.php
file_put_contents($wp_config_path, stripslashes($_POST['wp_config_content']));
echo '<div class="updated"><p>Die Datei wp-config.php wurde erfolgreich gespeichert!</p></div>';
}
}
}// Lese den aktuellen Inhalt der wp-config.php
$wp_config_content = file_exists($wp_config_path) ? file_get_contents($wp_config_path) : '';// Prüfe, ob die Datei existiert, und erstelle einen Download-Link
$download_url = admin_url('admin-post.php?action=download_wp_config');?>
<div class="wrap">
<h1>WP-Config-Editor</h1>
<p><strong>Warnung:</strong> Die Datei <code>wp-config.php</code> enthält sensible Konfigurationsdaten. Fehlerhafte Änderungen können dazu führen, dass Ihre Website nicht mehr funktioniert. Bearbeiten Sie diese Datei nur, wenn Sie die Konsequenzen verstehen.</p>
<p>Empfehlungen:
<ul style="list-style-position: inside">
<li style="list-style-type: square; margin-left: 2em;">Erstellen Sie ein Backup Ihrer Website, bevor Sie Änderungen vornehmen.</li>
<li style="list-style-type: square; margin-left: 2em;">Bearbeiten Sie nur die Einstellungen, die Sie genau verstehen.</li>
</ul>
</p><!-- Download-Link -->
<p>
<a href="<?php echo esc_url($download_url); ?>" class="button button-secondary">Aktuelle Version der wp-config.php herunterladen</a>
</p><form method="post">
<!-- Checkbox zur Bestätigung -->
<label>
<input type="checkbox" name="confirm_edit" value="yes" onchange="document.getElementById('wp-config-textarea').disabled = !this.checked; document.getElementById('save-button').disabled = !this.checked;">
Ich habe die Warnung gelesen und verstanden und möchte fortfahren.
</label>
<br><br><!-- Textarea für die Datei -->
<textarea id="wp-config-textarea" name="wp_config_content" style="width:100%;height:400px;" disabled><?php echo esc_textarea($wp_config_content); ?></textarea>
<br><br><!-- Speichern-Button -->
<button id="save-button" type="submit" class="button button-primary" disabled>Speichern</button>
</form><?php
// Zeige Fehlermeldung an, falls Checkbox nicht angeklickt wurde
if ($error_message) {
echo $error_message;
}
?>
</div>
<?php
}// Action für den Download-Link
add_action('admin_post_download_wp_config', function () {
// Überprüfen, ob der Benutzer Administratorrechte hat
if (!current_user_can('manage_options')) {
wp_die('Sie haben keine Berechtigung, diese Datei herunterzuladen.');
}$wp_config_path = ABSPATH . 'wp-config.php';if (file_exists($wp_config_path)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="wp-config.php"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($wp_config_path));
readfile($wp_config_path);
exit;
} else {
wp_die('Die Datei wp-config.php wurde nicht gefunden.');
}
});Das tut der Code:
- Neue Administrationsseite hinzufügen: Der Code erstellt eine neue Seite im Admin-Menü namens «WP-Config-Editor».
- Beschränkung auf AdministratorInnen: User, welche nicht die höchsten Administrationsrechte besitzen, können die Datei wp-config.php nicht bearbeiten.
- Warnhinweise und Sicherheitsmassnahmen: Vor der Bearbeitung wird eine Warnung angezeigt, die erklärt, dass Änderungen an der Datei riskant sind. Zusätzlich muss eine Checkbox aktiviert werden, um die Datei bearbeiten zu können.
- Download-Button: Die bisherige Version der Datei wp-config.php kann ganz einfach heruntergeladen werden.
- Textarea und Button: Sobald die Checkbox aktiviert wird, können Sie den Inhalt der Datei bearbeiten und speichern.
Fazit: Mit diesem einfachen Code können Sie einen sicheren und benutzerfreundlichen WP-Config-Editor erstellen. Bearbeiten Sie die Datei wp-config.php allerdings nur, wenn Sie genau wissen, was Sie tun. Fehler können Ihre Website unzugänglich machen.
Werbung


