最新コミックが600円分無料で読める<U-NEXT>

意外と簡単!自分でプラグインを作ってみようか①【WordPress】

スポンサーリンク
Wordpress
WordPressの簡単プラグイン作成方法をご紹介します。
今回は、管理画面に機能を追加し、head要素内にソースコードを追加するプラグインを作成します。アフィリエイト広告のソースコード貼り付けなどにご利用ください。
みなさんこんにちは!
筋肉カメレオンです。

WordPressは数多くのプラグインが公開されており、簡単に機能追加ができてとても便利ですね。

公開されているプラグインだけでも様々な機能を追加することができます。

でも、ブログを運営していると、かゆいところに手が届かなかったり、セキュリティが心配だったり、WordPressのバージョンアップに伴い使用不可になったりと、他人任せだと不都合があったりします。

そこで簡単な機能であれば、自分でプラグインを作成することをおすすめします。

自分で作ったプラグインであれば、改良して機能追加したり、WordPress本体のバージョンアップで動かなくなったとしても調査がしやすくなるので、安全なサイト運営にはかかせません。

スポンサーリンク

全体のソースコード

最初に全体のソースコードを掲載しておきます。
そのままコピペでも実装可能です。

<?php
/*
Plugin Name: Add head code
Plugin URI:  https://example.com/plugin/
Description: <head>タグにソースコードを追加します。
Version:     1.0
Author:      筋肉カメレオン
Author URI:  https://example.com
License:     GPLv2 or later
License URI: http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*/

// 管理画面の「設定」メニューに項目追加
add_action('admin_menu', 'addHeadCode_menu');

// <head>内に追加する処理
add_action('wp_head', 'add_code');


function addHeadCode_menu() {
  add_options_page( 'Add head code', 'Add head code', 'manage_options', 'addHeadCode', 'addHeadCode_options' );
}

function addHeadCode_options() {
	if ( !current_user_can( 'manage_options' ) )  {
		wp_die( __( 'このページにアクセスするための十分な権限がありません。' ) );
  }

  if ( isset($_POST['addHeadCode_options'])) {
    check_admin_referer('addHeadCode');
    $opt = $_POST['addHeadCode_options'];
    update_option('addHeadCode_options', $opt);
    echo '<div class="updated fade"><p><strong>保存しました。</strong></p></div>';
  }

  $wp_nonce = wp_nonce_field('addHeadCode');
  $opt = get_option('addHeadCode_options');
  $show_code = isset($opt['code']) ? $opt['code']: null;

  // 管理画面に表示する画面
  $document = <<< EOM
<div class="wrap">
<h2>Add head code</h2>
<p><head>タグにソースコードを追加します。</p>
<form method="post">
{$wp_nonce}
<textarea name="addHeadCode_options[code]" rows="10" cols="30" style="width:100%;">{$show_code}</textarea>
<p class="submit"><input type="submit" name="Submit" class="button-primary" value="変更を保存" /></p>
</form>
</div>
EOM;
  echo $document;
}

function add_code(){
  $opt = get_option('addHeadCode_options');
  $show_code = isset($opt['code']) ? $opt['code']: null;
  echo $show_code . "\n";
}
スポンサーリンク

個別に解説

プラグイン情報の宣言

冒頭のコメント部分で、プラグイン情報を記述します。
ここで記述した内容が、WordPress管理画面の「プラグイン」画面のプラグイン一覧に表示されます。

最低限の必須項目は「Plugin Name」のみです。

<?php
/*
Plugin Name: Add head code
Plugin URI:  https://example.com/plugin/
Description: <head>タグにソースコードを追加します。
Version:     1.0
Author:      筋肉カメレオン
Author URI:  https://example.com
License:     GPLv2 or later
License URI: http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*/

フック処理の追加

アクションフックを指定します。
「admin_menu」・・・管理画面上に処理追加
「wp_head」・・・head要素内の生成時に処理追加

// 管理画面の「設定」メニューに項目追加
add_action('admin_menu', 'addHeadCode_menu');

//内に追加する処理
add_action('wp_head', 'add_code');

管理画面のメニューに項目追加

今回は「設定」のサブメニューとして「Add head code」画面を追加します。
「manage_options」が「設定」項目内の指定になります。

function addHeadCode_menu() {
  add_options_page( 'Add head code', 'Add head code', 'manage_options', 'addHeadCode', 'addHeadCode_options' );
}

プラグインのメイン処理部分

次がメイン処理の部分です。
冒頭のif文で「アクセス権限の確認」も行っています。
保存処理の部分では、「check_admin_referer(‘addHeadCode’);」で、正常にフォームからPOSTされた内容かの確認を行っています。
最低限のセキュリティ対策済みのコードです。
※本来はもっと厳密にチェックすべきですが、「簡単プラグイン作成」のため省略しています。

function addHeadCode_options() {
	if ( !current_user_can( 'manage_options' ) )  {
		wp_die( __( 'このページにアクセスするための十分な権限がありません。' ) );
  }

  if ( isset($_POST['addHeadCode_options'])) {
    check_admin_referer('addHeadCode');
    $opt = $_POST['addHeadCode_options'];
    update_option('addHeadCode_options', $opt);
    echo '<div class="updated fade"><p><strong>保存しました。</strong></p></div>';
  }

  $wp_nonce = wp_nonce_field('addHeadCode');
  $opt = get_option('addHeadCode_options');
  $show_code = isset($opt['code']) ? $opt['code']: null;

  // 管理画面に表示する画面
  $document = <<< EOM
<div class="wrap">
<h2>Add head code</h2>
<p><head>タグにソースコードを追加します。</p>
<form method="post">
{$wp_nonce}
<textarea name="addHeadCode_options[code]" rows="10" cols="30" style="width:100%;">{$show_code}</textarea>
<p class="submit"><input type="submit" name="Submit" class="button-primary" value="変更を保存" /></p>
</form>
</div>
EOM;
  echo $document;
}

ページ表示時の処理

実際にページを表示する際の処理です。
get_optionで保存したデータを読み込み、echoで表示を行っています。

function add_code(){
  $opt = get_option('addHeadCode_options');
  $show_code = isset($opt['code']) ? $opt['code']: null;
  echo $show_code . "\n";
}
スポンサーリンク

さいごに

WordPressの簡単プラグイン作成方法をご紹介しました。
今回ご紹介した内容は最低限の記述のため、セキュリティ対策および、拡張性などはあまり考慮していませんでした。
実際にサイト運営に使用する場合は、もう少し丁寧に作成されると良いかと思います。
あなたのご参考になれば幸いです。

それでは。

あなたにおすすめ!
Wordpress
スポンサーリンク
筋肉カメレオンをフォローする
筋肉カメレオン

コメント