Token导航 LogoToken导航TokenDH.com
前端设计敏感数据github未标认证来源可访问许可证需确认审计通过

wordpress-plugin-devWordPress plugin DEV 命令行

Agent Skill

wordpress-plugin-dev 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

279

周安装

12

GitHub Stars

1

下载量

98
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:wordpress-plugin-dev(WordPress plugin DEV 命令行)
来源仓库:https://github.com/alanef/plugin-fullworks-support-diagnostics-project
仓库路径:skills/wordpress-plugin-dev
安装命令:
npx skills add https://github.com/alanef/plugin-fullworks-support-diagnostics-project --skill wordpress-plugin-dev
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/alanef/plugin-fullworks-support-diagnostics-project --skill wordpress-plugin-dev

简介

WordPress plugin DEV 命令行简化本地开发环境的搭建与调试流程。

  • 适用于快速初始化新插件、加载依赖和启动热重载服务。
  • 支持 npm scripts 集成和 Xdebug 配置,提升开发效率。
  • 配置文件可能包含敏感路径,请勿提交至公共代码仓库。
  • 建议采用 Docker Compose 封装环境,保证跨平台一致性。

SKILL.md

WordPress Plugin Development

Our Project Structure

We use a specific structure with a root project directory and nested plugin directory:

plugin-project-name/               # Root project directory
├── composer.json                  # Dev dependencies (phpcs, phpunit, phpstan)
├── phpcs.xml                      # WordPress-Extra ruleset
├── phpcs_sec.xml                  # Security-specific checks
├── phpstan.neon.dist              # Static analysis config
├── phpunit.xml.dist               # PHPUnit configuration
├── tests/                         # Tests at root level
│   ├── bootstrap.php              # PHPUnit bootstrap
│   ├── Unit/                      # Unit tests
│   └── Integration/               # Integration tests
├── vendor/                        # Composer dev dependencies
└── plugin-name/                   # Actual plugin directory
    ├── plugin-name.php            # Main plugin file
    ├── composer.json              # Plugin-specific dependencies
    ├── src/                       # Namespaced source code
    │   ├── Core/
    │   │   └── Main.php           # Main initialization class
    │   ├── Admin/
    │   │   └── AdminPage.php
    │   ├── Data/
    │   └── REST/
    │       └── DiagnosticsEndpoint.php
    ├── vendor/                    # Plugin dependencies
    ├── languages/                 # Translation files
    └── README.md

Key Points:

  • Root level has development tools (phpcs, phpunit, phpstan)
  • Plugin lives in subdirectory (e.g., fullworks-support-diagnostics/)
  • Use namespaced classes in src/ directory
  • Composer autoloading for both dev tools and plugin classes
  • Tests at root level, outside plugin directory
  • Separate composer.json for plugin distribution vs development

Main Plugin File Pattern

<?php
/**
 * Plugin Name: Your Plugin Name
 * Description: Brief description
 * Version: 1.0.0
 * Author: Your Name
 * License: GPL-2.0+
 * Text Domain: plugin-text-domain
 * Requires at least: 5.8
 * Requires PHP: 7.4
 */

// Prevent direct access
if (!defined('WPINC')) {
    die;
}

// Define plugin constants
define('PREFIX_PLUGIN_VERSION', '1.0.0');
define('PREFIX_PLUGIN_DIR', plugin_dir_path(__FILE__));
define('PREFIX_PLUGIN_URL', plugin_dir_url(__FILE__));

// Load Composer autoloader
require_once PREFIX_PLUGIN_DIR . 'vendor/autoload.php';

// Initialize the plugin
function prefix_initialize_plugin() {
    new \Vendor\PluginName\Core\Main();
}

add_action('plugins_loaded', 'prefix_initialize_plugin', 5);

Namespaced Class Structure

<?php
namespace Vendor\PluginName\Core;

use Vendor\PluginName\Admin\AdminPage;
use Vendor\PluginName\REST\DiagnosticsEndpoint;

class Main {
    const VERSION = '1.0.0';
    const OPTION_NAME = 'prefix_settings';

    private $settings;
    private $admin_page;

    public function __construct() {
        $this->settings = get_option(self::OPTION_NAME, []);
        $this->init_components();
        $this->setup_hooks();
    }

    private function init_components() {
        $this->admin_page = new AdminPage($this->settings);
    }

    private function setup_hooks() {
        add_action('admin_menu', [$this->admin_page, 'add_admin_menu']);
    }
}

WordPress Coding Standards (WPCS)

Code Style

  • Use tabs for indentation (not spaces)
  • Use proper PHPDoc blocks for all classes, methods, and functions
  • Follow WordPress naming conventions:

- Namespaced Classes: Vendor\PluginName\Feature\ClassName - Functions: prefix_function_name() - Files in src/: ClassName.php (matching class name)

  • Use Yoda conditions: if (true === $value)
  • Space after control structures: if (condition) {
  • Single quotes for strings unless variables or special characters needed

Our PHPCS Configuration

We use WordPress-Extra with custom exclusions:

<rule ref="WordPress-Extra">
    <exclude name="WordPress.Files.FileName.NotHyphenatedLowercase"/>
    <exclude name="Generic.WhiteSpace"/>
    <exclude name="PEAR.NamingConventions"/>
    <exclude name="Universal.Files.SeparateFunctionsFromOO"/>
    <exclude name="Universal.Operators.StrictComparisons"/>
</rule>

Run checks with:

composer phpcs        # Full WPCS check
composer check        # PHP compatibility + WPCS
composer phpcbf       # Auto-fix issues

Security Best Practices

Input Validation and Sanitization

  • Always sanitize input:

- sanitize_text_field() - general text - sanitize_email() - email addresses - sanitize_url() - URLs - absint() - positive integers - intval() - integers - wp_kses() / wp_kses_post() - HTML content

Output Escaping

  • Always escape output:

- esc_html() - HTML content - esc_attr() - HTML attributes - esc_url() - URLs - esc_js() - JavaScript strings - wp_kses_post() - Post content with safe HTML

Nonce Verification

// Creating nonce
wp_nonce_field( 'action_name', 'nonce_field_name' );

// Verifying nonce
if ( ! isset( $_POST['nonce_field_name'] ) ||
     ! wp_verify_nonce( $_POST['nonce_field_name'], 'action_name' ) ) {
    wp_die( 'Security check failed' );
}

Capability Checks

if ( ! current_user_can( 'manage_options' ) ) {
    wp_die( 'Unauthorized access' );
}

SQL Security

  • Use $wpdb->prepare() for all SQL queries
  • Never concatenate user input into SQL
$wpdb->get_results( $wpdb->prepare(
    "SELECT * FROM {$wpdb->prefix}table WHERE id = %d AND name = %s",
    $id,
    $name
) );

WordPress Hooks System

Actions vs Filters

  • Actions: Execute code at specific points (side effects)
  • Filters: Modify data before returning

Best Practices

// Use unique prefixes to avoid conflicts
add_action( 'init', 'prefix_init_function' );
add_filter( 'the_content', 'prefix_modify_content', 10, 1 );

// Always specify priority (default: 10) and accepted args
add_action( 'save_post', 'prefix_save_post_action', 10, 2 );

// Remove actions/filters when needed
remove_action( 'init', 'prefix_init_function' );

Hook Timing

  • plugins_loaded - After plugins loaded
  • init - Initialize plugin features
  • admin_init - Admin-specific initialization
  • wp_enqueue_scripts - Enqueue frontend assets
  • admin_enqueue_scripts - Enqueue admin assets

Database Operations

Options API

// Get option with default
$value = get_option( 'prefix_option_name', 'default_value' );

// Update option
update_option( 'prefix_option_name', $value );

// Autoload consideration
add_option( 'prefix_option_name', $value, '', 'no' ); // Don't autoload

Custom Tables

  • Use $wpdb->prefix for table names
  • Create tables on plugin activation with dbDelta()
  • Include charset and collation

Internationalization (i18n)

// Text domain should match plugin slug
__( 'Text to translate', 'plugin-text-domain' );
_e( 'Text to echo', 'plugin-text-domain' );
esc_html__( 'Text to translate and escape', 'plugin-text-domain' );
esc_html_e( 'Text to echo and escape', 'plugin-text-domain' );

// With variables
sprintf(
    /* translators: %s: user name */
    __( 'Hello, %s!', 'plugin-text-domain' ),
    $user_name
);

REST API

add_action( 'rest_api_init', 'prefix_register_routes' );

function prefix_register_routes() {
    register_rest_route( 'plugin/v1', '/endpoint', array(
        'methods'             => 'POST',
        'callback'            => 'prefix_endpoint_callback',
        'permission_callback' => 'prefix_permission_check',
    ) );
}

Error Handling

// Use WP_Error for error handling
if ( is_wp_error( $result ) ) {
    return $result;
}

// Create errors
return new WP_Error( 'error_code', __( 'Error message', 'text-domain' ) );

Performance Optimization

  • Use transients for caching: set_transient(), get_transient()
  • Lazy load when possible
  • Minimize database queries
  • Use wp_cache_* functions for object caching
  • Enqueue minified assets in production

Testing with wp-env

We use @wordpress/env (wp-env) for local development and testing:

Setup

# Install wp-env globally (if not already installed)
npm -g install @wordpress/env

# Start WordPress environment
wp-env start

# Stop environment
wp-env stop

# Clean/reset environment
wp-env clean

Running Tests

# Set up test environment variable
export WP_PHPUNIT__TESTS_CONFIG=/path/to/wp-tests-config.php

# Run PHPUnit tests
composer test

# Or run directly with wp-env
wp-env run tests-cli --env-cwd=wp-content/plugins/plugin-name vendor/bin/phpunit

PHPUnit Configuration

Our phpunit.xml.dist defines two test suites:

  • unit: Unit tests in tests/Unit/ (no WordPress dependencies)
  • integration: Integration tests in tests/Integration/ (with WordPress)

Test Bootstrap

The tests/bootstrap.php file:

  • Loads Composer autoloader
  • Checks for WP_PHPUNIT__TESTS_CONFIG environment variable
  • Requires WordPress test configuration

Writing Tests

<?php
namespace Tests\Unit;

use PHPUnit\Framework\TestCase;
use Yoast\PHPUnitPolyfills\Polyfills\AssertEqualsCanonicalizing;

class SampleTest extends TestCase {
    use AssertEqualsCanonicalizing;

    public function test_sample() {
        $this->assertTrue(true);
    }
}

Static Analysis

PHPStan

composer phpstan      # Run static analysis

Configuration in phpstan.neon.dist with WordPress-specific rules via szepeviktor/phpstan-wordpress.

Build and Distribution

Building Plugin

composer build

This will:

  1. Clean zipped directory
  2. Install production dependencies in plugin directory
  3. Create zip file in zipped/ directory

Composer Scripts

  • composer phpcs - Run coding standards check
  • composer check - Run PHP compatibility checks (7.4-8.3) + WPCS
  • composer phpcbf - Auto-fix coding standards issues
  • composer phpstan - Run static analysis
  • composer test - Run PHPUnit tests
  • composer build - Build distribution zip

Testing Checklist

  • All tests pass (composer test)
  • No coding standards violations (composer check)
  • No static analysis errors (composer phpstan)
  • Test in wp-env with WP_DEBUG enabled
  • Test with multiple PHP versions (7.4-8.3)
  • Verify compatibility with latest WordPress version
  • Check that plugin works after building (composer build)

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

39.34%
按下载量换算39

Claude

28.47%
按下载量换算28

Cursor

17.47%
按下载量换算17

Gemini CLI

10.52%
按下载量换算10

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills