jpskill.com
🎨 デザイン コミュニティ

wordpress-dev

WordPressのテーマやプラグイン開発において、コーディング規約、カスタム投稿タイプ、セキュリティ、パフォーマンス、フック/フィルター、テンプレート階層など、ベストプラクティスに基づいた開発を支援するSkill。

📜 元の英語説明(参考)

WordPress development best practices - coding standards, custom post types, security, performance, hooks/filters, and template hierarchy. Use for any WordPress theme or plugin development guidance.

🇯🇵 日本人クリエイター向け解説

一言でいうと

WordPressのテーマやプラグイン開発において、コーディング規約、カスタム投稿タイプ、セキュリティ、パフォーマンス、フック/フィルター、テンプレート階層など、ベストプラクティスに基づいた開発を支援するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o wordpress-dev.zip https://jpskill.com/download/18123.zip && unzip -o wordpress-dev.zip && rm wordpress-dev.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/18123.zip -OutFile "$d\wordpress-dev.zip"; Expand-Archive "$d\wordpress-dev.zip" -DestinationPath $d -Force; ri "$d\wordpress-dev.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して wordpress-dev.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → wordpress-dev フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
2

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

WordPress開発のベストプラクティス

2025年の標準に準拠したWordPressテーマおよびプラグインの包括的な開発ガイダンスです。

このSkillで提供されるもの

  1. Coding Standards - WordPress標準に準拠したPHP、JS、CSSの規約
  2. Custom Post Types - 完全なCPT登録および管理ガイド
  3. Security - サニタイズ、エスケープ、nonce、capabilityチェック
  4. Performance - キャッシュ、クエリ最適化、アセットの読み込み
  5. Hooks & Filters - アクションとフィルターのリファレンス(例付き)
  6. Template Hierarchy - テーマのテンプレート構造とオーバーライド

クイックリファレンス

すべきこと

  • WordPress APIを使用する(車輪の再発明をしない)
  • すべての入力をサニタイズする(sanitize_* 関数)
  • すべての出力をエスケープする(esc_* 関数)
  • SQLにはプリペアドステートメントを使用する($wpdb->prepare
  • スクリプト/スタイルを適切にエンキューする(wp_enqueue_*
  • コストのかかる処理にはtransientsを使用する
  • テンプレート階層に従う
  • コアを修正する代わりにフックを使用する
  • すべての関数、クラス、グローバル変数のプレフィックスを設定する
  • 自動化タスクにはWP-CLIを使用する

すべきでないこと

  • WordPressコアファイルを修正しない(絶対に)
  • query_posts()を使用しない - 代わりにWP_Queryを使用する
  • エスケープせずに信頼できないデータを出力しない
  • 機密データをプレーンテキストオプションに保存しない
  • 信頼できないデータに対してextract()を使用しない
  • @演算子でエラーを抑制しない
  • 非推奨の関数を使用しない
  • URLまたはファイルパスをハードコードしない
  • フォームでnonce検証をスキップしない
  • mysql_*関数を使用しない - $wpdbを使用する

ドキュメント

詳細なドキュメントは/docs/にあります。

ファイル 内容
coding-standards.md PHP、JS、CSSの命名規則とフォーマット
custom-post-types.md CPTの登録、ラベル、capability
security.md 入出力処理、nonce、SQLの安全性
performance.md キャッシュ、最適化、遅延読み込み
hooks-filters.md 一般的なアクション/フィルター(例付き)
template-hierarchy.md テンプレートファイルとオーバーライド

コードテンプレート

すぐに使用できるテンプレートは/templates/にあります。

テンプレート 目的
custom-post-type.php CPT登録のボイラープレート
taxonomy.php カスタムタクソノミーの登録
meta-box.php 保存処理付きの管理メタボックス
rest-api-endpoint.php カスタムREST APIエンドポイント
plugin-skeleton/ 完全なプラグインスターターファイル

使用例

カスタム投稿タイプの作成

Claudeに聞いてください:

  • "不動産用の'Property'カスタム投稿タイプを作成する"
  • "写真フィールドを持つチームメンバー用のカスタム投稿タイプを追加する"
  • "カスタムタクソノミーを持つ'Portfolio' CPTを登録する"

セキュリティレビュー

Claudeに聞いてください:

  • "このフォームハンドラーのセキュリティ問題をレビューする"
  • "このプラグインがWordPressのセキュリティベストプラクティスに従っているか確認する"
  • "このコードに適切なサニタイズとエスケープを追加する"

パフォーマンス最適化

Claudeに聞いてください:

  • "パフォーマンスを向上させるために、このWP_Queryを最適化する"
  • "このコストのかかるデータベース操作にキャッシュを追加する"
  • "このテーマのアセット読み込みをレビューする"

コード生成

scaffoldスクリプトを使用してボイラープレートを生成します。

# カスタム投稿タイプを生成する
python3 /root/.claude/skills/wordpress-dev/scripts/scaffold.py \
  --type cpt \
  --name "Property" \
  --slug "property" \
  --output /path/to/theme/inc/

# カスタムタクソノミーを生成する
python3 /root/.claude/skills/wordpress-dev/scripts/scaffold.py \
  --type taxonomy \
  --name "Property Type" \
  --slug "property-type" \
  --post-type "property" \
  --output /path/to/theme/inc/

WordPress 6.x / ブロックテーマに関する注意

フルサイト編集 (FSE)

ブロックテーマの場合 (WordPress 6.0 以降):

theme/
├── theme.json          # グローバルスタイルと設定
├── templates/          # ブロックテンプレート (HTML)
│   ├── index.html
│   ├── single.html
│   └── page.html
├── parts/              # ブロックテンプレートパーツ
│   ├── header.html
│   └── footer.html
└── patterns/           # ブロックパターン
    └── hero.php

theme.json のベストプラクティス

{
  "$schema": "https://schemas.wp.org/trunk/theme.json",
  "version": 2,
  "settings": {
    "color": {
      "palette": [
        {"slug": "primary", "color": "#1a1a1a", "name": "Primary"}
      ]
    },
    "typography": {
      "fontFamilies": [
        {"fontFamily": "Inter, sans-serif", "slug": "body", "name": "Body"}
      ]
    },
    "spacing": {
      "units": ["px", "rem", "%"]
    }
  }
}

一般的なパターン

安全なデータベースクエリ

global $wpdb;
$results = $wpdb->get_results(
    $wpdb->prepare(
        "SELECT * FROM {$wpdb->posts} WHERE post_type = %s AND post_status = %s",
        'property',
        'publish'
    )
);

AJAXハンドラー

// AJAXアクションを登録
add_action('wp_ajax_my_action', 'my_ajax_handler');
add_action('wp_ajax_nopriv_my_action', 'my_ajax_handler');

function my_ajax_handler() {
    // nonceを検証
    check_ajax_referer('my_nonce', 'security');

    // capabilityをチェック
    if (!current_user_can('edit_posts')) {
        wp_send_json_error('Unauthorized', 403);
    }

    // 入力をサニタイズ
    $data = sanitize_text_field($_POST['data']);

    // 処理して応答
    wp_send_json_success(['message' => 'Done']);
}

スクリプトを適切にエンキュー

function theme_enqueue_assets() {
    // CSS
    wp_enqueue_style(
        'theme-style',
        get_stylesheet_uri(),
        [],
        filemtime(get_stylesheet_directory() . '/style.css')
    );

    // JS(依存関係あり)
    wp_enqueue_script(
        'theme-main',
        get_theme_file_uri('/assets/js/main.js'),
        ['jquery'],
        filemtime(get_theme_file_path('/assets/js/main.js')),
        true // フッターに配置
    );

    // AJAX用にローカライズ
    wp_localize_script('theme-main', 'themeData', [
        'ajaxUrl' => admin_url('admin-ajax.php'),
        'nonce'   => wp_create_nonce('theme_nonce'),
    ]);
}
add_action('wp_enqueue_scripts', 'theme_enqueue_assets');

関連スキル

  • wordpress-admin:

(原文がここで切り詰められています)

📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

WordPress Development Best Practices

Comprehensive development guidance for WordPress themes and plugins following 2025 standards.

What This Skill Provides

  1. Coding Standards - PHP, JS, CSS conventions following WordPress standards
  2. Custom Post Types - Complete CPT registration and management guide
  3. Security - Sanitization, escaping, nonces, capability checks
  4. Performance - Caching, query optimization, asset loading
  5. Hooks & Filters - Actions and filters reference with examples
  6. Template Hierarchy - Theme template structure and overrides

Quick Reference

Do's

  • Use WordPress APIs (don't reinvent the wheel)
  • Sanitize all input (sanitize_* functions)
  • Escape all output (esc_* functions)
  • Use prepared statements for SQL ($wpdb->prepare)
  • Enqueue scripts/styles properly (wp_enqueue_*)
  • Use transients for expensive operations
  • Follow the template hierarchy
  • Use hooks instead of modifying core
  • Prefix all functions, classes, and global variables
  • Use WP-CLI for automation tasks

Don'ts

  • Modify WordPress core files (NEVER)
  • Use query_posts() - use WP_Query instead
  • Echo untrusted data without escaping
  • Store sensitive data in plain text options
  • Use extract() on untrusted data
  • Suppress errors with @ operator
  • Use deprecated functions
  • Hard-code URLs or file paths
  • Skip nonce verification on forms
  • Use mysql_* functions - use $wpdb

Documentation

Detailed documentation available in /docs/:

File Contents
coding-standards.md PHP, JS, CSS naming and formatting
custom-post-types.md CPT registration, labels, capabilities
security.md Input/output handling, nonces, SQL safety
performance.md Caching, optimization, lazy loading
hooks-filters.md Common actions/filters with examples
template-hierarchy.md Template files and overrides

Code Templates

Ready-to-use templates in /templates/:

Template Purpose
custom-post-type.php CPT registration boilerplate
taxonomy.php Custom taxonomy registration
meta-box.php Admin meta box with save handling
rest-api-endpoint.php Custom REST API endpoint
plugin-skeleton/ Complete plugin starter files

Usage Examples

Create a Custom Post Type

Ask Claude:

  • "Create a 'Property' custom post type for real estate"
  • "Add a custom post type for team members with a photo field"
  • "Register a 'Portfolio' CPT with custom taxonomies"

Security Review

Ask Claude:

  • "Review this form handler for security issues"
  • "Check if this plugin follows WordPress security best practices"
  • "Add proper sanitization and escaping to this code"

Performance Optimization

Ask Claude:

  • "Optimize this WP_Query for better performance"
  • "Add caching to this expensive database operation"
  • "Review asset loading for this theme"

Code Generation

Use the scaffold script to generate boilerplate:

# Generate a custom post type
python3 /root/.claude/skills/wordpress-dev/scripts/scaffold.py \
  --type cpt \
  --name "Property" \
  --slug "property" \
  --output /path/to/theme/inc/

# Generate a custom taxonomy
python3 /root/.claude/skills/wordpress-dev/scripts/scaffold.py \
  --type taxonomy \
  --name "Property Type" \
  --slug "property-type" \
  --post-type "property" \
  --output /path/to/theme/inc/

WordPress 6.x / Block Theme Notes

Full Site Editing (FSE)

For block themes (WordPress 6.0+):

theme/
├── theme.json          # Global styles and settings
├── templates/          # Block templates (HTML)
│   ├── index.html
│   ├── single.html
│   └── page.html
├── parts/              # Block template parts
│   ├── header.html
│   └── footer.html
└── patterns/           # Block patterns
    └── hero.php

theme.json Best Practices

{
  "$schema": "https://schemas.wp.org/trunk/theme.json",
  "version": 2,
  "settings": {
    "color": {
      "palette": [
        {"slug": "primary", "color": "#1a1a1a", "name": "Primary"}
      ]
    },
    "typography": {
      "fontFamilies": [
        {"fontFamily": "Inter, sans-serif", "slug": "body", "name": "Body"}
      ]
    },
    "spacing": {
      "units": ["px", "rem", "%"]
    }
  }
}

Common Patterns

Safe Database Query

global $wpdb;
$results = $wpdb->get_results(
    $wpdb->prepare(
        "SELECT * FROM {$wpdb->posts} WHERE post_type = %s AND post_status = %s",
        'property',
        'publish'
    )
);

AJAX Handler

// Register AJAX action
add_action('wp_ajax_my_action', 'my_ajax_handler');
add_action('wp_ajax_nopriv_my_action', 'my_ajax_handler');

function my_ajax_handler() {
    // Verify nonce
    check_ajax_referer('my_nonce', 'security');

    // Check capability
    if (!current_user_can('edit_posts')) {
        wp_send_json_error('Unauthorized', 403);
    }

    // Sanitize input
    $data = sanitize_text_field($_POST['data']);

    // Process and respond
    wp_send_json_success(['message' => 'Done']);
}

Enqueue Scripts Properly

function theme_enqueue_assets() {
    // CSS
    wp_enqueue_style(
        'theme-style',
        get_stylesheet_uri(),
        [],
        filemtime(get_stylesheet_directory() . '/style.css')
    );

    // JS with dependencies
    wp_enqueue_script(
        'theme-main',
        get_theme_file_uri('/assets/js/main.js'),
        ['jquery'],
        filemtime(get_theme_file_path('/assets/js/main.js')),
        true // In footer
    );

    // Localize for AJAX
    wp_localize_script('theme-main', 'themeData', [
        'ajaxUrl' => admin_url('admin-ajax.php'),
        'nonce'   => wp_create_nonce('theme_nonce'),
    ]);
}
add_action('wp_enqueue_scripts', 'theme_enqueue_assets');

Related Skills

  • wordpress-admin: Page/post management, WP-CLI, REST API
  • seo-optimizer: Yoast/Rank Math audit and optimization
  • visual-qa: Screenshot testing with animation handling
  • brand-guide: Brand documentation generation

Resources

同梱ファイル

※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。