21 lines
671 B
PHP
21 lines
671 B
PHP
<?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 );
|
|
}
|