プラグインの基本構成・基本構造

2020年1月9日

プラグインファイルの基本構成

さて、いきなりプラグインファイルの基本構成です。

プラグインに興味ある人ならちょっと調べると、

プラグインは1つのPHPファイルだけでも作成できます。

と書いているサイトや書籍に出会ったことがあるかと思います。これは事実で、実際にHello Dollyプラグインなんかはhello.phpファイルをプラグインディレクトリに配置しただけです。

が、ここではそれは無視してちゃんとディレクトリを作ってその中にファイルを入れておきます。

ということで、まずプラグイン作成の最初の段階として、以下のような形でプラグインディレクトリとファイルを準備したいと思います。

  • wp-content(dir)
    • plugins(dir)
      • my-original-plugin(dir)
        • my-original-plugin.php
        • class(dir)
          • class.wpmop-hogehoge.php

言うまでもありませんが、(dir)はディレクトリを指しています。

始めにmy-original-plugin.phpに何を書くか

my-original-plugin.phpに何を書くか。これは、プラグインに何をさせたいかによって変わってくるのですが、基本的には「プラグインのコメント」「定数定義」「必要なファイルの読み込み」「クラス」「クラスのインスタンス化」を書いているようです。

<?php 
/* 
Plugin Name: My Original Plugin Plugin 
URI: Description: This Plugin id developed for My Original Plugin 
Version: 0.0.1 
Author: webmaster@GRITT.JP 
Text Domain: mop 
*/ 

//以下、プラグイン内でよく使うと思われる定数の定義 
define( 'WPMOP_VER', '0.0.1' ); 
define( 'WPMOP_URL', plugins_url( '', __FILE__ ) ); 
define( 'WPMOP_DIR', plugin_dir_path( __FILE__ ) ); 
define( 'WPMOP_LIBS_PATH', rtrim( plugin_dir_path( __FILE__ ), '/' ) . '/class/' ); 

//以下、使用するファイルの読み込み。 
include_once( WPMOP_LIBS_PATH . 'class.hogehoge.php' );

//クラス 
class WPMOP {
 //ここにプラグインで行う処理を書いておく 
} 

//以下、クラスのインスタンス化 
global $wpmop; 
$wpmop = new WPMOP();

こんな感じでしょうか。

実際には、class WPMOP{}の中に色々掻き込むので、このクラスを別ファイルにしてincludeすることが多いかと思います。

以下のように変更してみましょう。

  • wp-content(dir)
    • plugins(dir)
      • my-original-plugin(dir)
        • my-original-plugin.php
        • class(dir)
          • class.wpmop.php

my-original-plugin.phpファイル

<?php 
/* 
Plugin Name: My Original Plugin Plugin 
URI: Description: This Plugin id developed for My Original Plugin 
Version: 0.0.1 
Author: webmaster@GRITT.JP 
Text Domain: mop 
*/ 

//以下、プラグイン内でよく使うと思われる定数の定義 
define( 'WPMOP_VER', '0.0.1' ); 
define( 'WPMOP_URL', plugins_url( '', __FILE__ ) ); 
define( 'WPMOP_DIR', plugin_dir_path( __FILE__ ) ); 
define( 'WPMOP_LIBS_PATH', rtrim( plugin_dir_path( __FILE__ ), '/' ) . '/class/' ); 

//以下、使用するファイルの読み込み。 
include_once( WPMOP_LIBS_PATH . 'class.wpmop.php' ); 

//以下、クラスのインスタンス化 
global $wpmop; 
$wpmop = new WPMOP();

class.wpmop.phpファイル

<?php 
class WPMOP {
 //ここにプラグインの処理を追記 
}

この状態でファイルを準備できたら、プラグインファイルをアップロードし、WordPress管理画面>インストール済みプラグイン画面から、「My Original Plugin」有効化してみましょう。

 

基本

Posted by webmaster