fix: headless_home_url needs to be in mu-plugins
This commit is contained in:
20
wp-content/mu-plugins/headless-home-url.php
Normal file
20
wp-content/mu-plugins/headless-home-url.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
// Customize home URL for headless WordPress
|
||||
add_filter( 'home_url', 'headless_home_url', 10, 4 );
|
||||
function headless_home_url( $url, $path, $orig_scheme, $blog_id ) {
|
||||
// Exclude specific patterns from rewriting
|
||||
$excluded_patterns = array(
|
||||
'#/wp-json(/|$)#i', // WP REST API
|
||||
'#\.(xsl|xml)$#i', // Sitemap and XSLT files
|
||||
);
|
||||
foreach ( $excluded_patterns as $pattern ) {
|
||||
if ( preg_match( $pattern, $url ) ) {
|
||||
return get_site_url( $blog_id, $path, $orig_scheme );
|
||||
}
|
||||
}
|
||||
|
||||
// Rewrite URL protocol to match original home scheme
|
||||
$scheme = wp_parse_url( get_option( 'home' ) )['scheme'] ?? 'https';
|
||||
return preg_replace( '#^https:#i', "$scheme:", $url );
|
||||
}
|
||||
@@ -17,21 +17,6 @@ function moonshine_after_setup_theme() {
|
||||
// Register sidebars
|
||||
}
|
||||
|
||||
// Bypass headless home URL for specific cases
|
||||
add_filter( 'home_url', 'moonshine_bypass_home_url', 10, 4 );
|
||||
function moonshine_bypass_home_url( $url, $path, $orig_scheme, $blog_id ) {
|
||||
$excluded_patterns = array(
|
||||
'#/wp-json(/|$)#i', // WP REST API
|
||||
'#\.(xsl|xml)$#i', // Sitemap and XSLT files
|
||||
);
|
||||
foreach ( $excluded_patterns as $pattern ) {
|
||||
if ( preg_match( $pattern, $url ) ) {
|
||||
return get_site_url( $blog_id, $path, $orig_scheme );
|
||||
}
|
||||
}
|
||||
return $url;
|
||||
}
|
||||
|
||||
// Display theme version in admin footer
|
||||
add_filter( 'update_footer', 'moonshine_update_footer', 100 );
|
||||
function moonshine_update_footer() {
|
||||
|
||||
Reference in New Issue
Block a user