我对 WordPress 主题开发比较陌生,我想向 WordPress 定制器添加选项。我正在考虑两种不同的方法来注册定制器设置和控件,但我不确定哪一种更优化。
方法一: 在这种方法中,我在 index.php 文件中注册一个钩子并包含所需的文件。
<?php
if (!function_exists('mytheme_customizer')) {
function mytheme_customizer(WP_Customize_Manager $wp_customize): void {
require_once MYTHEME_DIR . '/inc/customizer/breadcrumb-customizer.php';
// other include files
}
}
add_action('customize_register', 'mytheme_customizer');
方法二: 在这种方法中,每个文件独立注册自己的钩子。
breadcrumb-customizer.php
<?php
if (!function_exists('mytheme_breadcrumb_customizer')) {
function mytheme_breadcrumb_customizer(WP_Customize_Manager $wp_customize): void {
// code
}
}
add_action('customize_register', 'mytheme_breadcrumb_customizer');
abc-customizer.php
<?php
if (!function_exists('mytheme_abc_customizer')) {
function mytheme_abc_customizer(WP_Customize_Manager $wp_customize): void {
// code
}
}
add_action('customize_register', 'mytheme_abc_customizer');
...
这两种方法我都尝试过,我个人更喜欢方法 2,因为它使定制器选项保持模块化和组织化。然而,我注意到 WordPress.org 上的许多主题倾向于使用方法 1。
我担心在多个文件中注册钩子(方法2)可能效率较低或较慢。我想了解许多主题中偏爱方法 1 的原因,并确定哪种方法在性能和最佳实践方面更优化。
如果您的主题预计未来会增长并且您看重模块化和可维护性,那么方法2是一个好的选择。 性能的影响是最小,并且组织的好处超过了潜在的缺点,如果您喜欢简单并从事较小的项目,那么方法1非常适合您。 基本上,选择取决于您的具体需求和项目的规模。