MENU
Language

WordPressのプラグイン:WordPressの基本機能を拡張・カスタマイズするためのモジュール型のプログラム 仕組みと構成の例

WordPressのプラグインは、WordPressの基本機能を拡張・カスタマイズするためのモジュール型のプログラムです。その仕組みと構成について以下に解説します。

プラグインの仕組み

  1. フック機構(Hooks)
    • WordPressのプラグインは、主に「アクションフック」と「フィルターフック」を通じて、WordPress本体の動作に割り込んで機能を追加します。
      • アクションフック: 特定のタイミングでコードを実行します(例: 記事が保存された後など)。
      • フィルターフック: データを変更する際に利用します(例: 投稿タイトルをカスタマイズ)。
  2. PHPでの実装
    • プラグインはPHPで記述され、WordPressのAPIを利用して作成されます。
  3. 独立性
    • 各プラグインは独立しており、他のプラグインやテーマの影響を受けない設計を基本とします。ただし、互換性問題が起こる場合もあります。
  4. プラグインディレクトリ
    • プラグインはWordPressの/wp-content/plugins/フォルダーに配置されます。

プラグインの構成

1. 必須ファイル

メインプラグインファイル

プラグインのエントリーポイントで、通常はプラグイン名と同じ名前の.phpファイル。ファイルの冒頭に以下のコメントブロックを記述し、WordPressにプラグインを認識させます。

ヘッダーコメントを含む有効な PHP ファイルの例)

/*
 * Plugin Name:       My Basics Plugin
 * Plugin URI:        https://example.com/plugins/the-basics/
 * Description:       Handle the basics with this plugin.
 * Version:           1.10.3
 * Requires at least: 5.2
 * Requires PHP:      7.2
 * Author:            John Smith
 * Author URI:        https://author.example.com/
 * License:           GPL v2 or later
 * License URI:       https://www.gnu.org/licenses/gpl-2.0.html
 * Update URI:        https://example.com/my-plugin/
 * Text Domain:       my-basics-plugin
 * Domain Path:       /languages
 * Requires Plugins:  my-plugin, yet-another-plugin
 */

ファイルレベルの PHPDoc DocBlock と WordPress プラグインのファイル ヘッダーを許可する別の例)

/**
 * Plugin Name
 *
 * @package           PluginPackage
 * @author            Your Name
 * @copyright         2019 Your Name or Company Name
 * @license           GPL-2.0-or-later
 *
 * @wordpress-plugin
 * Plugin Name:       Plugin Name
 * Plugin URI:        https://example.com/plugin-name
 * Description:       Description of the plugin.
 * Version:           1.0.0
 * Requires at least: 5.2
 * Requires PHP:      7.2
 * Author:            Your Name
 * Author URI:        https://example.com
 * Text Domain:       plugin-slug
 * License:           GPL v2 or later
 * License URI:       http://www.gnu.org/licenses/gpl-2.0.txt
 * Update URI:        https://example.com/my-plugin/
 * Requires Plugins:  my-plugin, yet-another-plugin
 */

この部分をWordPressは読み取り、プラグイン管理画面に表示します。

2. オプションファイル

  • 追加のPHPファイル: 機能が複雑になる場合に、コードをモジュール化して管理。
  • CSS/JSファイル: 管理画面やフロントエンドでスタイルやスクリプトを適用。
  • テンプレートファイル: 特定のページや表示用のテンプレート。

3. ディレクトリ構成の例

以下はプラグインのディレクトリ構成の例です。

例1)WordPress Plugin Handbook:ベストプラクティスの紹介例
https://developer.wordpress.org/plugins/plugin-basics/best-practices/

/plugin-name
     plugin-name.php
     uninstall.php
     /languages
     /includes
     /admin
          /js
          /css
          /images
     /public
          /js
          /css
          /images

例2)その他のサンプル

plugin-name/
│
├── plugin-name.php        # メインファイル
├── readme.txt             # プラグイン説明ファイル(WordPress公式リポジトリ用)
├── uninstall.php          # プラグインのアンインストール処理
├── assets/                # 静的リソース(公開用画像やアイコン)
│   ├── icon.png
│   ├── banner.jpg
├── includes/              # PHPロジックや補助関数
│   ├── core-functions.php # 核心となる関数群
│   ├── admin-settings.php # 管理画面関連
│   ├── hooks.php          # アクションやフィルターの設定
├── templates/             # テンプレートファイル
│   ├── template-example.php
├── public/                # フロントエンド用のリソース
│   ├── css/
│   │   ├── style.css      # フロントエンド用のスタイルシート
│   ├── js/
│       ├── script.js      # フロントエンド用のJavaScript
├── admin/                 # 管理画面用のリソース
│   ├── css/
│   │   ├── admin-style.css # 管理画面用スタイル
│   ├── js/
│       ├── admin-script.js # 管理画面用スクリプト
├── languages/             # 翻訳ファイル
│   ├── plugin-name-en_US.mo
│   ├── plugin-name-en_US.po

開発の流れ

  1. プラグインディレクトリの作成
    • /wp-content/plugins/に新しいフォルダを作成します。
    • フォルダ名はプラグイン名に基づく簡潔なものにします。
  2. メインファイルの作成
    • 必須のコメントブロックを記述し、プラグインを有効化できるようにします。
  3. フックを利用
    • WordPressのフックを使用して、必要な機能を追加します。
  4. スタイルやスクリプトの追加
    • wp_enqueue_script()wp_enqueue_style()を使って、CSSやJavaScriptを適切に読み込む。
  5. テスト
    • ローカル環境で動作テストを行い、エラーや警告がないことを確認します。

参考公式ドキュメント

  1. WordPress Plugin Handbook
  2. WordPress Codex
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

AIアーティスト | エンジニア | ライター | 最新のAI技術やトレンド、注目のモデル解説、そして実践に役立つ豊富なリソースまで、幅広い内容を記事にしています。フォローしてねヾ(^^)ノ

コメント

コメントする