43 lines
1.3 KiB
PHP
43 lines
1.3 KiB
PHP
<?php
|
|
|
|
// Setup theme
|
|
add_action( 'after_setup_theme', 'moonshine_after_setup_theme' );
|
|
function moonshine_after_setup_theme() {
|
|
// Load textdomain
|
|
load_theme_textdomain( 'moonshine', get_theme_file_path( 'languages' ) );
|
|
|
|
// Theme features
|
|
add_theme_support( 'custom-logo' );
|
|
add_theme_support( 'editor-styles' );
|
|
remove_theme_support( 'core-block-patterns' );
|
|
|
|
// Register menus
|
|
register_nav_menu( 'main', __( "Main menu", 'moonshine' ) );
|
|
|
|
// 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() {
|
|
$package_json = json_decode( file_get_contents( get_theme_file_path( 'package.json' ) ), true );
|
|
$name = $package_json['name'] ?? 'moonshine';
|
|
$version = $package_json['version'] ?? '(unknown)';
|
|
return sprintf( '%s v%s', esc_html( $name ), esc_html( $version ) );
|
|
}
|