WordPress开发教程:命名规范

编辑文章

本文旨在系统阐述WordPress官方编码标准中的命名规范。这套规范的核心目标是解决在插件和主题共存的生态中,因代码全部加载于全局命名空间而引发的命名冲突问题。其设计哲学围绕可预测性避免冲突展开,通过一套以前缀机制为核心的、涵盖函数、类、常量、变量的完整命名体系,确保不同开发者编写的代码能够和谐共存。

语法示例

以下代码展示了遵循WordPress规范的核心命名方式:

// 函数:带前缀的小写字母与下划线
function my_plugin_get_user_data( $user_id ) {
    // 变量:描述性的小写字母与下划线
    $formatted_data = array();

    // 全局常量:带前缀的全大写字母与下划线
    define( 'MY_PLUGIN_CACHE_TIME', 3600 );

    // 使用WordPress核心常量
    if ( defined( 'ABSPATH' ) ) {
        // 使用WordPress核心函数
        $user = get_userdata( $user_id );
    }
}

// 类:带前缀的大驼峰式(StudlyCaps)
class My_Plugin_Data_Processor {
    // 类方法:小驼峰式(camelCase)
    public function formatOutput( $data ) {
        // 调用自定义函数
        return my_plugin_get_user_data( $data );
    }
}

规范详解

函数命名

所有函数名必须使用小写字母,单词间以下划线连接,并且必须使用唯一前缀(通常为插件/主题缩写)。这保证了函数在全局命名空间中的唯一性。WordPress核心自身就严格遵循此规则,例如获取文章ID的函数是 get_the_ID,引入脚本的函数是 wp_enqueue_script。你的代码应遵循同样模式,如 my_plugin_register_settings

类名与文件命名

类名应采用大驼峰式StudlyCaps),并包含唯一前缀。类名应清晰描述其用途。相应的类文件命名应使用小写字母和连字符,以 class- 开头。例如,WordPress核心用于处理主查询的类名为 WP_Query,其文件命名为 class-wp-query.php。你的代码应类似,如类 My_Plugin_Asset_Loader 对应文件 class-my-plugin-asset-loader.php

常量命名

常量名必须使用全大写字母,单词间用下划线分隔。在全局空间定义的常量(使用 define()必须包含唯一前缀。WordPress核心常量如 ABSPATH(WordPress安装绝对路径)和 WP_DEBUG(调试模式开关)都是典型例子。你的常量应类似,如 MY_PLUGIN_VERSION

变量命名

变量名应使用小写字母下划线,名称需清晰描述其内容,避免模糊缩写。WordPress核心代码强调使用完整词,例如用 $settings 而非 $sets,用 $user_id 而非 $uid。对于对象实例,也无需添加 _obj 等冗余后缀,直接使用如 $wpdb(数据库对象)这样的名称即可。

钩子函数命名

专为 add_actionadd_filter 创建的钩子回调函数,命名规则与普通函数完全一致,但常通过名称体现其关联性。例如,一个用于过滤文章标题的函数可能被命名为 my_plugin_filter_post_title,其内部通过 add_filter( 'the_title', 'my_plugin_filter_post_title' ) 进行挂载,保持了清晰的对应关系。