1. TOP
  2. Webサービス
  3. WordPressの「投げ銭プラグイン」をクラス構文で作成する(その1)~ クラスとインスタンス変数の作成

WordPressの「投げ銭プラグイン」をクラス構文で作成する(その1)~ クラスとインスタンス変数の作成

wordpress_nagesenplugin_class_1

WordPress「オプション付き投げ銭プラグイン」の作り方 実行環境とclient IDを管理画面から入力〜その3(プラグインの完成)

先日、「(オプション付き)投げ銭プラグイン」を作成しました。ですが主だった機能はすべて関数を用いて記述しています。一方、「投げ銭プラグイン」は、公式ディレクトリにUPしたいと考えています。

プラグインをクラス化することのメリット

プラグインを公式ディレクトリにUPしてより多くの人に使ってもらいたいたければ、他のプラグインと関数名がバッティングすることを避けなければなりません。そのバッティングを避けるためにPHPのコードをクラス化することは、他のプラグインとも共存できるようになるというメリットが挙げられます。

また、その他クラス化をしたときのメリットとして、プラグインの機能を拡張したときにコードの再利用性が高まることも挙げられます。

クラス化でプラグインの全体像を作成

ではさっそく先日GitHubに公開したクラス構文を使っていないコードを基準として、クラス化をしていきましょう。

必要なフォルダとファイルの作成

$ pwd
/var/www/html/wp-content/plugins
$ mkdir PayPal_ExpressCheckout
$ cd PayPal_ExpressCheckout
$ touch PayPal_ExpressCheckout.php
$ touch PayPal_ExpressCheckout_admin.php

まず「投げ銭プラグイン」で必要なフォルダとファイルを作成します。PayPal_ExpressCheckout.phpはプラグインヘッダーを書き込むプラグイン本体のファイルで、PayPal_ExpressCheckout_admin.phpは設定画面の表示を司るファイルです。

プラグインヘッダーの書き込み

<?php
/**
 * @package express
 */
/*
Plugin Name: PayPal Express Checkout
Plugin URI: https://example.com
Description: PayPal Express Checkout
Version: 0.0.0
Author: echizenya
Author URI: https://e-yota.com
License: GPLv2 or later
Text Domain: paypal_expresscheckout
*/

WordPressでプラグインを作成するときのお約束事です。このヘッダーを記述すると、管理画面でプラグインとして認識されます。

クラスとインスタンス変数の作成

次にクラスとインスタンス変数に関する記述を作成します。先にクラスとインスタンス変数を記述することで、ざっくりとしたプラグインができます。

PayPal_ExpressCheckout.php

class PayPal_ExpressCheckout {

}

require(__DIR__ . '/PayPal_ExpressCheckout_admin.php');

クラスの名前はファイル名と同じく、”PayPal_ExpressCheckout”にします。インスタンスはの外で行いますので、PHPのrequire関数を用いてPayPal_ExpressCheckout_admin.phpを読み込みます。

PayPal_ExpressCheckout_admin.php

<?php
if( is_admin() ){
  $pypl_expr = new PayPal_ExpressCheckout();
}

PayPal_ExpressCheckout_admin.phpでnew演算子を用いて、クラスを実行します。このクラスを実行することで、「投げ銭プラグイン」の設定画面が表示されます。ここまでのコードはGitHubにて公開しています。ご興味のある方は、合わせて参考にしてください。