[WordPress] 自分だけのプラグインを作る




トップページへ

※ワードプレスで記事を書いているだけの方はこの記事は無関係です。

※読んで頂けるのは幸いですが、参考にされ何かしらの不具合が発生したとしても当方は責任を負いかねます。自己責任でお願いします。

 

この記事のサンプルはプラグインを作るのが目的なので、プラグインの中身はサンプルプログラム「xmlrpc.phpの名前を変える」です。

プラグインにする必要はない処理ですが、あくまでも「プラグインを作成し有効化を実現するための試験的なプログラム」です。

 

1 下記の先輩方のサイトを参考にさせて頂き、「基礎的な部分」を勉強させて頂きました。

プラグインの作成

https://wpdocs.osdn.jp/%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%AE%E4%BD%9C%E6%88%90

【初心者】自作のWordPressプラグインを作成する ~コピペで開発できる作り方で解説

https://tart.co.jp/wordpress-plugin-original-create/

 

学べた事で最大のポイント

・フォルダを作って、固有の記述を付加したPHPファイルを1つ作れば、WordPressのプラグイン画面がそれを自動で認識する。有効化すれば実行され、無効化すれば何も起きない。

・PHPファイルの記述は「プラグインファイルエディター」がオススメとのことでしたので、そこで記述・保存をしました。なぜなら、記述エラーを起こした場合、エディター画面がエラーを表示してくれるため。ローカルで作成しアップロードする方法だと、最悪のエラー時、プラグイン画面が開かない可能性がある、とのことでした。

 

 

2 wp-content フォルダの中の plugins フォルダに、自分専用のフォルダを作成します。他のプラグインフォルダとの名前の重複は厳禁なので一意のフォルダ名で作成します。

wp-content フォルダの中の plugins フォルダに自分専用のフォルダを作成

 

3 2のフォルダに最低でも1つのPHPファイルを入れ、プラグインエディターでそのPHPファイルを編集します

プラグイン用のPHPファイルにする場合、冒頭に決まった形式で記述する必要があります。

/*~*/の部分がその形式で、名前やURL、コメント部分だけを適宜変更することになります。

なお/*~*/内ではセミコロンは不要です。もし海外にも配布する予定がある場合は全文英文が良いでしょう。

 

ここではとりあえず「<?php

/*
Plugin Name: Sakigake xmlrpc Rename Pulgin
Plugin URI: https://it.in-jpn.com/
Description: これはWPのxmlrpc.phpをリネーム(ファイル名を変える)プラグインです。その結果xmlrpcが無効化されブルートフォース攻撃を回避します
Version: 0.1
Author: Sakigake
Author URI: https://in-jpn.com/sakigake/
License: sakiga_plugin_lc.php
*/

?>」だけのファイルを入れます。

自分が作成したPHP言語のプラグインファイル

 

プラグインファイルエディターをクリック。

「編集するプラグインを選択」で選び[選択]ボタン。編集をして[ファイルを更新]ボタンで保存。もし記述エラーがあれば保存時に表示されます。

タップ、クリックで拡大します。

「編集するプラグインを選択」で選び[選択]ボタン。編集をして[ファイルを更新]ボタンで保存。もし記述エラーがあれば保存時に表示されます

画像のようにファイルの先頭に固有の記述をし、その後に処理(ここではリネーム処理)の記述をします。

 

下記がファイルの中身です。なおWordPress上なので、PHPファイルを示す「<?PHPと?>」は省略しています。

ちなみにここでは xmlrp.php を BKxmlrpc.php に名前を変えているだけです。

/*
Plugin Name: Sakigake xmlrpc Rename Pulgin
Plugin URI: https://it.in-jpn.com/
Description: これはWPのxmlrpc.phpをリネーム(ファイル名を変える)プラグインです。その結果xmlrpcが無効化されブルートフォース攻撃を回避します
Version: 0.1
Author: Sakigake
Author URI: https://in-jpn.com/sakigake/
License: sakiga_plugin_lc.php
*/
$ren_file = ABSPATH .'/xmlrpc.php';
if ( file_exists( $ren_file ) ) {
	if ( rename($ren_file, ABSPATH .'/BKxmlrpc.php') == True ) {
	} // rename
} // file_exists

 

4 プラグイン画面で「有効化」をクリックすると実行されました。現状では「プラグイン画面」を表示する度に実行されました。

言い換えると、

プログラムを1回だけ実行したい場合→ 「有効化」したあとすぐに「無効化」する。

常に(*)実行したい場合→ 一度「有効化」すると「無効化」するまで継続。

でした。

*ここでいう「常に」とは、プラグイン画面を表示した時だけでなく、ブログの記事が閲覧された時も含まれると思います。プラグインなので。

 

それではまず、自分が作成したプラグインの名前や説明はこのように表示されます。

自分が作成したプラグインの名前や説明はこのように表示されます

 

有効化する前の xmlrpc.php

元々のxmlrpc.php

 

作成したプラグインを有効化します

作成したプラグインを有効化します

 

有効化しプラグインを実行した後の xmlrpc.php

有効化しプラグインを実行した後の xmlrpc.php

 

感想

結局、何かの処理をわざわざプラグインでする必要があるのか?によって作るか作らないかに分かれますが、とりあえずプラグインの作成、有効、無効化は意外と簡単に思えました。

 

個人的には、WordPressのバージョンアップ(6.0→6.1など)の度に xmlrpc.phpが自動で生成されるので、プラグインで変名ができればラクと思ったのが、この記事のきっかけです。

 

余談ですが、xmlrpc.phpの無効化として .htaccessファイルへの記述が一般的です。

【PR】 WordPress (amazon) *見つからない場合があります

【PR】 WordPress (楽天市場) *見つからない場合があります




ほかの ワードプレス の記事

WordPress 6.1.1→6.2にアップデートしたらInternal Server Error 500

[WordPress]何のテーブル?

[エックスサーバー]サブドメイン設定, WordPress簡単移行

WordPress 個人的 逆引き関数リファレンス

[WordPress] 記事にアイキャッチ画像を張る前と張った後のデータの変化