' . esc_html__( 'CyyWordpress 主题需要 PHP 8.1 或更高版本。', 'cyywordpress' ) . '

'; } ); return; // Do not load theme in unsupported environments. } global $wp_version; if ( version_compare( $wp_version, '6.0', '<' ) ) { add_action( 'admin_notices', function (): void { echo '

' . esc_html__( 'CyyWordpress 主题需要 WordPress 6.0 或更高版本。', 'cyywordpress' ) . '

'; } ); return; } // --------------------------------------------------------------------------- // Version constant // --------------------------------------------------------------------------- if ( ! defined( '_S_VERSION' ) ) { define( '_S_VERSION', '2.0.0' ); } // --------------------------------------------------------------------------- // Includes – each file owns its own domain // --------------------------------------------------------------------------- require get_template_directory() . '/inc/custom-header.php'; require get_template_directory() . '/inc/template-tags.php'; require get_template_directory() . '/inc/template-functions.php'; require get_template_directory() . '/inc/customizer.php'; require get_template_directory() . '/inc/bulmapress_navwalker.php'; require get_template_directory() . '/inc/search.php'; require get_template_directory() . '/inc/pagination.php'; require get_template_directory() . '/inc/block-patterns.php'; require get_template_directory() . '/inc/class-cyywordpress-assets.php'; require get_template_directory() . '/inc/class-cyywordpress-seo.php'; require get_template_directory() . '/inc/class-cyywordpress-schema.php'; if ( defined( 'JETPACK__VERSION' ) ) { require get_template_directory() . '/inc/jetpack.php'; } // --------------------------------------------------------------------------- // Theme setup // --------------------------------------------------------------------------- if ( ! function_exists( 'cyywordpress_setup' ) ) : /** * Sets up theme defaults and registers WordPress feature support. */ function cyywordpress_setup(): void { load_theme_textdomain( 'cyywordpress', get_template_directory() . '/languages' ); add_theme_support( 'automatic-feed-links' ); add_theme_support( 'title-tag' ); add_theme_support( 'post-thumbnails' ); add_theme_support( 'responsive-embeds' ); add_theme_support( 'align-wide' ); add_theme_support( 'widgets-block-editor' ); // Editor styles – keeps back-end visually consistent with the front end. add_theme_support( 'editor-styles' ); add_editor_style( 'assets/css/editor-style.css' ); add_theme_support( 'html5', array( 'search-form', 'comment-form', 'comment-list', 'gallery', 'caption', 'style', 'script', ) ); add_theme_support( 'custom-background', apply_filters( 'cyywordpress_custom_background_args', array( 'default-color' => 'ffffff', 'default-image' => '', ) ) ); add_theme_support( 'customize-selective-refresh-widgets' ); add_theme_support( 'custom-logo', array( 'height' => 80, 'width' => 80, 'flex-width' => true, 'flex-height' => true, ) ); // Navigation menus. register_nav_menus( array( 'menu-1' => esc_html__( '主导航', 'cyywordpress' ), 'menu-2' => esc_html__( '页脚导航', 'cyywordpress' ), 'social' => esc_html__( '社交媒体链接', 'cyywordpress' ), ) ); // Custom image sizes. add_image_size( 'card-thumbnail', 800, 450, true ); add_image_size( 'card-thumbnail-sm', 400, 225, true ); } endif; add_action( 'after_setup_theme', 'cyywordpress_setup' ); // --------------------------------------------------------------------------- // Content width // --------------------------------------------------------------------------- function cyywordpress_content_width(): void { $GLOBALS['content_width'] = apply_filters( 'cyywordpress_content_width', 760 ); } add_action( 'after_setup_theme', 'cyywordpress_content_width', 0 ); // --------------------------------------------------------------------------- // Widget areas // --------------------------------------------------------------------------- function cyywordpress_widgets_init(): void { register_sidebar( array( 'name' => esc_html__( '文章侧边栏', 'cyywordpress' ), 'id' => 'sidebar-1', 'description' => esc_html__( '出现在文章/页面侧边的 Widget 区域。', 'cyywordpress' ), 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

', ) ); register_sidebar( array( 'name' => esc_html__( '页脚 Widget 1', 'cyywordpress' ), 'id' => 'sidebar-footer-1', 'description' => esc_html__( '页脚第一列 Widget 区域。', 'cyywordpress' ), 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '', ) ); register_sidebar( array( 'name' => esc_html__( '页脚 Widget 2', 'cyywordpress' ), 'id' => 'sidebar-footer-2', 'description' => esc_html__( '页脚第二列 Widget 区域。', 'cyywordpress' ), 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '', ) ); register_sidebar( array( 'name' => esc_html__( '页脚 Widget 3', 'cyywordpress' ), 'id' => 'sidebar-footer-3', 'description' => esc_html__( '页脚第三列 Widget 区域。', 'cyywordpress' ), 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '', ) ); register_sidebar( array( 'name' => esc_html__( '导航栏右侧', 'cyywordpress' ), 'id' => 'sidebar-header', 'description' => esc_html__( '出现在导航栏右侧的 Widget 区域(搜索等)。', 'cyywordpress' ), 'before_widget' => '', 'before_title' => '', 'after_title' => '', ) ); } add_action( 'widgets_init', 'cyywordpress_widgets_init' ); // --------------------------------------------------------------------------- // Initialise asset, SEO and schema classes // --------------------------------------------------------------------------- add_action( 'after_setup_theme', function (): void { CyyWordpress_Assets::init(); CyyWordpress_SEO::init(); CyyWordpress_Schema::init(); } ); // --------------------------------------------------------------------------- // Lazy-load attributes on all attachment images // --------------------------------------------------------------------------- add_filter( 'wp_get_attachment_image_attributes', function ( array $attr ): array { $attr['loading'] = 'lazy'; $attr['decoding'] = 'async'; return $attr; } ); // --------------------------------------------------------------------------- // Remove WordPress emoji CDN (performance) // --------------------------------------------------------------------------- remove_action( 'wp_head', 'print_emoji_detection_script', 7 ); remove_action( 'wp_print_styles', 'print_emoji_styles' ); remove_action( 'admin_print_scripts', 'print_emoji_detection_script' ); remove_action( 'admin_print_styles', 'print_emoji_styles' );