====== Wordpress URLs in Beiträgen aktualisieren ====== Wenn man eine Seite Live nehmen möchte und merkt, dass in der Datenbank zu jedem Post alle URLs noch auf das DEV-System zeigen, kann es leichter sein per ''the_content''-Filter alle URLs in Echtzeit zu aktualisieren. Mit diesem Code Schnipsel wird der ''$content'' vor der Ausgabe gefiltert, z.B. durch die Live URL: add_filter( 'the_content', 'url_live_update_filter', 1 ); function url_live_update_filter( $content ) { // Damit das funktioniert, muss 'WP_HOME' in der config.php gesetzt sein $replace_urls = [ "dev-subdomain.alte-domain.com" => "live-domain.com", ]; $updated_content = strtr( $content, $replace_urls ); return $updated_content; } Wenn man die [[programmieren:wordpress:configphp_einstellungen|URL per config.php geändert]] hat, kann man das auch so machen: add_filter( 'the_content', 'url_live_update_filter', 1 ); function url_live_update_filter( $content ) { // Damit das funktioniert, muss 'WP_HOME' in der config.php gesetzt sein $replace_urls = [ "https://dev-subdomain.alte-domain.com" => WP_HOME, ]; $updated_content = strtr( $content, $replace_urls ); return $updated_content; } ===== Automatisches Managen von mehreren Instanzen ===== Wenn 1:1 der gleiche Code über mehrere System geschoben wird, kann es interessant sein, den Host abzufragen und URLs entsprechend dynamisch zu ändern. Je nach dem auf welchem Host die config das gerade liegt: switch ( $_SERVER['HTTP_HOST'] ) { /* DEV */ case 'dev.mein-server.com': $host_url = "https://dev.mein-server.com/"; break; /* STAGE */ case 'stage.live-server.de': $host_url = "https://stage.live-server.de/"; break; /* PRODUCTION */ case 'live-server.de': $host_url = "https://www.live-server.de/"; break; default: $host_url = "https://www.live-server.de/"; break; } // @link https://wordpress.org/support/article/changing-the-site-url/ define( 'WP_SITEURL', $host_url); // url to wp define( 'WP_HOME', $host_url ); // live url Zusätzlich kann es nötig sein, URLs live per Filter zu überschreiben, siehe: [[programmieren:wordpress:urls_aktualisieren_per_filter|Wordpress URLs im $content per Filter the_content aktualisieren]]