Benutzer-Werkzeuge

Webseiten-Werkzeuge


snippets:wp:auto-url-change

Automatische Site-URL-Anpassung

Automatische Anpassung der Site-URL-Konstanten, sobald von „außen“ auf die Installation zugegriffen wird, z.B. über's LAN, um die Website mit verschiedenen Geräten testen zu können. Zum größten Teil basierend auf wp_guess_url() (wp-includes/functions.php).

Vorgehen

Nachfolgenden Code als Datei speichern und mit require_once ganz am Anfang der wp-config.php einbinden.

Code

if( $_SERVER['SERVER_ADDR'] != '127.0.1.1' ) { // not local
	$scheme = ( !empty( $_SERVER['REQUEST_SCHEME'] ) ? $_SERVER['REQUEST_SCHEME'] : 'http'  ) . '://';
 
	/**
	 * @see wp_guess_url()
	 */
	if ( strpos( $_SERVER['REQUEST_URI'], 'wp-admin' ) !== false || strpos( $_SERVER['REQUEST_URI'], 'wp-login.php' ) !== false ) {
		$path = preg_replace( '#/(wp-admin/.*|wp-login.php)#i', '', $_SERVER['REQUEST_URI'] );
	} else {
		$path = preg_replace( '#/[^/]*$#i', '', $_SERVER['PHP_SELF'] );
	}
 
	define('WP_SITEURL', $scheme .  $_SERVER['HTTP_HOST'] . $path );
	define('WP_HOME', WP_SITEURL );
}

Anmerkungen

Liese sich jederzeit auf weitere IPs erweitern, z.B. mit in_array:

if( !in_array( $_SERVER['SERVER_ADDR'], $my_known_ips ) ) {
...
}

oder mit strpos:

$my_known_ips = '127.0.1.1 || 123.456.67.89';
if( strpos( $my_known_ips, $_SERVER['SERVER_ADDR'] ) === false ) {
...
 
}
snippets/wp/auto-url-change.txt · Zuletzt geändert: 25.08.2014 20:51 von fwolf