「if ( ! defined( ‘ABSPATH’ ) ) exit;」って?【WordPressプラグイン申請】

「if ( ! defined( 'ABSPATH' ) ) exit;」って?【WordPressプラグイン申請】

WordPressのプラグインを作成し申請。
申請して2日目、レビュー待ちをしていたところにメールが1通届きました。

レビューはしてくれたようですが、メールの文頭には”There are issues with your plugin code.”の一文。プラグインのコードに問題有りということですね。
文を読み進めると、”Allowing Direct File Access to plugin files”と問題点が書かれており、プラグインファイル(PHP)に直接アクセスできてしまうことが問題とされているようでした。

しかも丁寧に対処法まで書かれており、全てのPHPファイルのコードの文頭に上記コードを記述するようにとのこと。ん、「ABSPATH」って何?
WordPressでは初歩のコードなのかもしれませんが、ちょっと気になったので調べてみました。

 

WordPressプラグインレビュー担当者の丁寧な対応

初めてのWordPressプラグイン申請。
プラグインを作るのも初めてな上、申請も初めてだったので正直すんなりとOKになるとは思っていなかったところ……。

「if ( ! defined( 'ABSPATH' ) ) exit;」って?【WordPressプラグイン申請】

前日のようにメールが届いたのでした。コードに問題があるって、やっぱり。

内容はすぐに対応できるものでホッとしたのですが、それにしてもレビューした上に対処法まで書いてメールをくれるとは思いませんでした。
しかもやりとりはこのメールに返信する形で続きます。担当者からの返信も早くて驚きました。

ちなみにこのやりとりには続きがあったのですが、そのことについてはまた最後に。

ABSPATHに定義されているのはwp-config.phpまでのパス

メールに書かれた対処法に従えば、指定のコードをPHPファイルのコードの文頭に追加するだけのようですが、コードをまずは調べてみます。

まず、プラグインファイル内のコードでABSPATHを出力してみることに。
“print_r(ABSPATH);”としてみると、”/Users/ユーザ名/opt/WP導入ディレクトリ/”(ローカル構築)という形で出力されました。
definedは指定した名前の定数が存在するかどうかを調べる関数。
どうやら、WordPressを導入したディレクトリまでのパスが”ABSPATH”という定数に定義されているようです。

ここで思い出しました。ABSPATHってどこかで見た記憶があったんですよね。

ということでwp-config.phpのコードを見てみると、やっぱり最下部の方にありました。

wp-config.phpで定義されているんですね。
ABSPATHは”Absolute Path”のことで、WordPressが導入されたディレクトリ、つまりwp-config.phpが置かれたディレクトリまでのパスが定義されているようです。

if ( ! defined( ‘ABSPATH’ ) ) exit; を全てのプラグインPHPファイルに追加

コードの内容がわかったので、プラグインに使っている全てのPHPファイルの文頭に、

のコードを追加していきます。

コードを追加後、プラグインが正しく動作するかを確認。
また、直接ブラウザからPHPファイルにアクセスして、上記コード以下のコードが動作しないか(exitが効いているか)を確認します。

確認後に担当者宛に修正した旨を返信して作業完了です。

まとめ

さて、ここまででABSPATHの意味もわかりプラグインのコードも修正完了。
これで安泰かなとホッとしていたところ、コード修正のメールを送信してすぐに担当者よりメールが返ってきました。

メールの文面は短くたった2行。

You need to remove this:

print_r(ABSPATH);

担当者さんホントすみません。。w

カテゴリ別記事一覧(全カテゴリ一覧
WordPress ウェブ制作・運用

筆者について

筆者について


1982年、東京下町生まれ。
高校卒業後、アメリカへ留学。その後、「アートが根付いた国では絵だけで食えるのか」を確認するため、ドイツベルリンにてアート活動をおこなう。

日本に戻ってからは、コーディング・オーサリング・プログラミングなんかを経て、ウェブディレクターを肩書きにしておりました。現在は独立し、ブログやサイトの運用を軸に、ウェブサイトの企画提案からデザイン・構築まで手広く活動しております。何でも屋です。
制作のご依頼はお問い合わせフォームよりお願いします。

isLog〜イズログ〜では『日々生きること自体が旅』をモットーに、日々の旅を中心に綴っています。

詳しいプロフィールはこちら


feedly

コメントを残す

*