mcpField
W
wordpress-pro

wordpress-pro

github.com/farmage开发224282 次安装5 周前更新
代码仓库

关于 wordpress-pro

WordPress Pro 是用于开发和维护 WordPress 主题、插件及 Gutenberg 区块的技能,强调 WordPress 规范、安全检查、性能优化和兼容性测试。

主要功能

  1. 01主题与插件架构指导
  2. 02Gutenberg 区块开发
  3. 03WordPress 钩子与过滤器
  4. 04Nonce、净化与转义实践
  5. 05缓存与查询优化
  6. 06WPCS 检查与版本测试

适用场景

  1. 01创建自定义 WordPress 主题或插件
  2. 02构建 Gutenberg 区块
  3. 03审查安全性并优化 WordPress 站点

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/farmage/opencode-skills --skill wordpress-pro

安装后在 Claude Code 中输入/wordpress-pro确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
gutenberg-blocks.md
hooks-filters.md
performance-security.md
plugin-architecture.md
theme-development.md

详细介绍

WordPress Pro

精通 WordPress 开发,专长于自定义主题、插件、Gutenberg 区块、WooCommerce 和 WordPress 性能优化。

核心工作流

  1. 分析需求 — 了解 WordPress 上下文、现有配置和目标。
  2. 设计架构 — 规划主题/插件结构、钩子和数据流。
  3. 实施 — 遵循 WordPress 编码标准和安全最佳实践进行构建。
  4. 验证 — 运行 phpcs --standard=WordPress 检查是否违反 WPCS;手动验证 nonce 处理和权限检查。
  5. 优化 — 应用 transient/对象缓存、查询优化和资源入队。
  6. 测试与保护 — 确认所有输入/输出均已进行清理/转义,在目标 WordPress 版本中测试,并执行安全审计清单。

参考指南

根据上下文加载详细指南:

主题参考资料加载时机
主题开发references/theme-development.md模板、层级、子主题、FSE
插件架构references/plugin-architecture.md结构、激活、设置 API、更新
Gutenberg 区块references/gutenberg-blocks.md区块开发、模式、FSE、动态区块
钩子与筛选器references/hooks-filters.md操作、筛选器、自定义钩子、优先级
性能与安全references/performance-security.md缓存、优化、加固、备份

关键实现模式

Nonce 验证(表单提交)
// Output nonce field in form
wp_nonce_field( 'my_action', 'my_nonce' );

// Verify on submission — bail early if invalid
if ( ! isset( $_POST['my_nonce'] ) || ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['my_nonce'] ) ), 'my_action' ) ) {
    wp_die( esc_html__( 'Security check failed.', 'my-textdomain' ) );
}
清理与转义
// Sanitize input (store)
$title   = sanitize_text_field( wp_unslash( $_POST['title'] ?? '' ) );
$content = wp_kses_post( wp_unslash( $_POST['content'] ?? '' ) );
$url     = esc_url_raw( wp_unslash( $_POST['url'] ?? '' ) );

// Escape output (display)
echo esc_html( $title );
echo wp_kses_post( $content );
echo '<a href="' . esc_url( $url ) . '">' . esc_html__( 'Link', 'my-textdomain' ) . '</a>';
脚本与样式入队
add_action( 'wp_enqueue_scripts', 'my_theme_assets' );
function my_theme_assets(): void {
    wp_enqueue_style(
        'my-theme-style',
        get_stylesheet_uri(),
        [],
        wp_get_theme()->get( 'Version' )
    );
    wp_enqueue_script(
        'my-theme-script',
        get_template_directory_uri() . '/assets/js/main.js',
        [ 'jquery' ],
        '1.0.0',
        true // load in footer
    );
    // Pass server data to JS safely
    wp_localize_script( 'my-theme-script', 'MyTheme', [
        'ajaxUrl' => admin_url( 'admin-ajax.php' ),
        'nonce'   => wp_create_nonce( 'my_ajax_nonce' ),
    ] );
}
预处理数据库查询
global $wpdb;
$results = $wpdb->get_results(
    $wpdb->prepare(
        "SELECT * FROM {$wpdb->prefix}my_table WHERE user_id = %d AND status = %s",
        absint( $user_id ),
        sanitize_text_field( $status )
    )
);
权限检查
// Always check capabilities before sensitive operations
if ( ! current_user_can( 'manage_options' ) ) {
    wp_die( esc_html__( 'You do not have permission to do this.', 'my-textdomain' ) );
}

约束

必须做到
  • 遵循 WordPress 编码标准(WPCS);使用 phpcs --standard=WordPress 验证
  • 所有表单提交和 AJAX 请求都使用 nonce
  • 使用适当的函数清理所有用户输入(sanitize_text_field、wp_kses_post 等)
  • 转义所有输出(esc_html、esc_url、esc_attr、wp_kses_post)
  • 所有数据库查询都使用预处理语句($wpdb->prepare)
  • 在执行特权操作前进行适当的权限检查
  • 通过 wp_enqueue_scripts/admin_enqueue_scripts 钩子入队脚本/样式
  • 使用 WordPress 钩子,而非修改核心代码
  • 使用文本域编写可翻译字符串(__()、esc_html__() 等)
  • 在目标 WordPress 版本中测试
不得做
  • 修改 WordPress 核心文件
  • 使用 PHP 短标签或已弃用的函数
  • 不经清理就信任用户输入
  • 输出未经转义的数据
  • 硬编码数据库表名(使用 $wpdb->prefix)
  • 在管理函数中跳过权限检查
  • 忽视 SQL 注入风险
  • 在 WordPress API 足以满足需求时,仍打包不必要的库
  • 允许不安全的文件上传处理
  • 跳过国际化(i18n)

输出模板

实现 WordPress 功能时,请提供:

  1. 包含正确标头的主插件/主题文件
  2. 相关模板文件或区块代码
  3. 使用适当 WordPress 钩子的函数
  4. 安全实现(nonce、清理、转义)
  5. 对所用 WordPress 特定模式的简要说明

知识参考

WordPress 6.4+、PHP 8.1+、Gutenberg、WooCommerce、ACF、REST API、WP-CLI、区块开发、主题自定义程序、小工具 API、短代码 API、transient、对象缓存、查询优化、安全加固、WPCS

文档

评论

支持 Markdown