31. Juli 2008 • Aktualisiert am 27. August 2008
WordPress besteht aus vielen Ordnern, Dateien, Datenbanktabellen und noch mehr Ordnern. Doch zwei Dinge sind speziell: Der Ordner wp-content/ und die Datei wp-config.php werden bei einem Update nicht überschrieben, denn darin sind wichtige Daten, die man nicht verlieren will. In WordPress 2.6 kann man diese auch verschieben, damit sie nicht mehr im Hauptverzeichnis von WordPress liegen. Das ändert natürlich so manches bei der Plugin-Programmierung.
WordPress erlaubt es den Programmierern, den Speicherort des Verzeichnis mit einer Variable zu definieren, um sicherzustellen, dass das Plugin es auch findet.
So sah es vor WordPress 2.6 aus:
plugin_path = $ ABSPATH. '/ wp-content/plugins /'. plugin_basename ( dirname ( __FILE__ ) ) ; plugin_basename (dirname (__FILE__));
$plugin_url = get_option ( 'siteurl' ) . '/wp-content/plugins/' . $ plugin_url = get_option ( 'siteurl') ". / wp-content/plugins / '. plugin_basename ( dirname ( __FILE__ ) ) ; plugin_basename (dirname (__FILE__));
Jetzt muss man umsteigen, um für Kompatibilität mit allen Versionen einschliesslich 2.6 zu sorgen:
/ / Kompatibilität mit Versionen vor 2.6
if ( ! defined ( 'WP_CONTENT_URL' ) ) if (! defined ( 'WP_CONTENT_URL'))
define ( 'WP_CONTENT_URL' , get_option ( 'siteurl' ) . '/wp-content' ) ; define ( 'WP_CONTENT_URL', get_option ( 'siteurl') ". / wp-content ');
if ( ! defined ( 'WP_CONTENT_DIR' ) ) if (! defined ( 'WP_CONTENT_DIR'))
define ( 'WP_CONTENT_DIR' , ABSPATH . 'wp-content' ) ; define ( 'WP_CONTENT_DIR', ABSPATH. "wp-content ');
// Standort ermitteln
$plugin_path = WP_CONTENT_DIR. '/plugins/' .plugin_basename ( dirname ( __FILE__ ) ) ; $ plugin_path = WP_CONTENT_DIR ". / plugins / '. plugin_basename (dirname (__FILE__));
$plugin_url = WP_CONTENT_URL. '/plugins/' .plugin_basename ( dirname ( __FILE__ ) ) ; $ plugin_url = WP_CONTENT_URL ". / plugins / '. plugin_basename (dirname (__FILE__));
In WordPress 2.6 werden die Konstanten WP_CONTENT_DIR und WP_CONTENT_URL entweder vom Benutzer oder in wp-settings.php definiert.
In WordPress 2.6 kannst du die Konfigurations-Datei entweder im Hauptverzeichnis lassen oder sie in verschiedene übergeordnete Ordner verschieben. Das macht Sinn, wenn wp-config.php danach nicht mehr im Root-Ordner des Webservers ist.
Vorher:
require_once ('../../../ wp-config.php ');
Nachher:
$root = dirname ( dirname ( dirname ( dirname ( __FILE__ ) ) ) ) ; $ root = dirname (dirname (dirname (dirname (__FILE__))));
if ( file_exists ( $root . '/wp-load.php' ) ) { if (file_exists ($ root ". / wp-load.php")) (
// WordPress 2.6
require_once ( $root . '/wp-load.php' ) ; require_once ($ root ". / wp-load.php ');
} else { ) Else (
// Vor WordPress 2.6
require_once ( $root . '/wp-config.php' ) ; require_once ($ root ". / wp-config.php ');
} )
Es scheint aber, dass dies noch nicht ganz funktionieren wird. Denn wenn nicht nur wp-config.php sondern auch wp-content/ in einem anderen Verzeichnis liegen, ändert sich der relative Pfad. Es gibt aber keine Möglichkeit, dies zu beheben. Man kann nur erraten, wo wp-config.php und wp-content/ liegen. Um hunderprozentig die richtige Datei zu erwischen, sollte die Datei, welche wp-config.php einbindet, editierbar sein. So können fortgeschrittene Benutzer, welche ihr wp-content/ Verzeichnis verschoben haben, den Pfad manuell angeben ($root Variable im Beispiel).
Gefunden bei planetOzh
© 2012 Schweizer WordPress Magazin | Realisiert von Pascal Birchler | 52 Queries. 0,525 Sekunden.