ぱんぶろ

パンジーの「いいね!」ブログ

WordPressで自分用プラグインを作り方!公式にアップしなくてもプラグインは使えますよ。

     

25779793131_9e057a90fcphoto credit: “I'm Working” via photopin (license)

WordPressである程度自分でカスタマイズできる人でもプラグインは作ったことないって方、多いと思います。
プラグイン開発は有能な人に与えられた特権のような、なんか一気に敷居が高くなる気がしますよね。(とわたしは思ってました。)

しかし、プラグインを開発すること自体は誰でもできるとまでは言いませんが、少なくともfunctions.phpを抵抗なくイジれる人なら楽勝です。

今回は、自分用のプラグインの作り方について紹介します。
公式に申請するとなるとまた一段と敷居があがりますので、自分で開発して自分で使うところまでです!

スポンサード リンク

自分用プラグインのメリット

プラグインを開発するメリットですが、サイトをまたいで使い回しができるという点。

「汎用性がある」という表現でしょうか。

基本的には、functions.phpで記載するような内容と同じことがプラグインでも行えます。
よくある代表的なのは、ショートコードの記載とかでしょうかね。

例えば、複数のWordPressサイトを持っていたとして、その全部に同じショートコードを使いたい。
全WordPressのfunctions.phpに同じ記載をすれば済みますが、プログラマーとしてはなんともダサい!
作業を楽にしてなんぼでしょ。(と、プログラマーもどきが言ってみる。)

ということで、functions.phpで書く(汎用的に使えるような)内容は、プラグインにしちゃったらいいんです。
別に公開するわけではなく、自分で使うように作るだけなので、誰にも迷惑はかけません。

あとは、functions.phpを汚さなくて済むのですっきりしますよね。

自分用のプラグインの作り方

自分用なので、記載は最低限だけで結構です。(公開するときは結構面倒くさい記述が必要だったりするけど。)

では、手順通りに説明していきます。

プラグイン名を決める

WordPressのプラグインを作るにあたって意外と重要なのが、名前の付け方。
他のプラグインと名前がかぶるのはNGです!

同じ名前のプラグインがあるとどちらかがアップロードした際に上書きされて、予期せぬ動作を起こす場合があります。
必ず唯一無二の名前にするように意識しましょう。
あと、名前は英語じゃないとダメです。

フォルダとファイル

プラグイン名が決まったら、フォルダとファイルを作っていきます。
フォルダ名とファイル名は、プラグイン名を小文字にしてハイフンで繋いだものにしてください。
これはWordPressの命名規則で決まっているみたいです。

例えば、
「Panzee First Plugin」という名前のプラグインを作るとしたら、

フォルダ名は、
panzee-first-plugin

ファイル名は、
panzee-first-plugin.php

といったイメージです。

panzee-first-pluginフォルダの配下にpanzee-first-plugin.phpがあります。

プラグインのヘッダ情報

プラグインヘッダとよばれる、プラグインの情報を記載するコメントを書く必要があります。

記載場所は、panzee-first-plugin.phpの先頭です。

プラグインとして認識されるために最低限必要なのが、Plugin Nameです。
名前のまんま、プラグインの名前を記載する箇所です。

以下を、panzee-first-plugin.phpに記載してください。

<?php
/*
Plugin Name: Panzee First Plugin
*/

pluginsフォルダにアップロード

WordPressをインストールしていれば、Pluginsフォルダが存在するはずです。
具体的に場所は、wp-contents/pluginsになります。

ヘッダーを記入したpanzee-first-plugin.phpを追加してください。
ore-plugin

プラグイン一覧に追加されてる

pluginsフォルダにアップロードしたら、WordPressの管理画面からインストール済みプラグイン一覧を見てください。
「Panzee First Plugin」が追加されているのが分かるはずです!

ore-plugin2

有効化しておきましょう。
ore-plugin5

ただし、今はコードも入力してないので有効化しても変化はありません。

コードを書いていこう!

プラグインがプラグインとしての役目を担ってもらうために、コードを書いていきましょう。
今回は、functions.phpにあとから追記される(おそらく)No.1であろう「ショートコード」と、No.2であろう「本文の文頭に文字を追記する」というのをプラグインを作っていきます。

ヘッダーだけ記載したpanzee-first-plugin.phpに以下を追記しましょう。

<?php
/*
Plugin Name: Panzee First Plugin
*/

/* ショートコードの追加 */
add_shortcode( 'ore-plugin', 'panzee_first_plugin_shortcode' );
function panzee_first_plugin_shortcode() {
	return '<p>ショートコードが表示されるよ!</p>';
}

/* コンテンツの先頭に追記 */
add_filter( 'the_content', 'panzee_first_plugin_the_content_filter' );
function panzee_first_plugin_the_content_filter($content) {

	$info = '<p>先頭に追記されるよ!</p>';
	return $info . $content;
}

試しに投稿してみましょう。
作成したショートコードを書いてみます。

ore-plugin3

プレビューで見てみましょう。
コンテンツの先頭と、作成したショートコードの内容が表示されているのが分かります。

ore-plugin4

関数名の決め方

WordPressでとにかく意識しないといけないのが、
名前がかぶらないこと!

プラグイン名もフォルダ名もファイル名もそうでしたが、関数名も同じです。
被ってしまっていたら思わぬご動作が起こりえます。

よくある関数名の付け方としては、プラグイン名をそのまま先頭につけるというやり方。
わたしのサンプルでも「panzee_first_plugin」を先頭に付けました。

他とかぶることのないように作ったプラグイン名を先頭につけることで関数名もかぶることがないという考え方ですね。
プラグイン名が被ってないこと前提ではあります。

ただ、長ったらしい関数名になってしまうのが問題です。
ここでは説明しませんが、プラグインをクラスにしてシンプルに書くやり方もあります。

まとめ

自分用のプラグインの作り方を紹介しました。
汎用的な機能はプラグインとして作成してまとめておくと便利ですよ!