回答:
if ( ! defined( 'WPINC' ) ) die;
そしてif ( ! defined( 'ABSPATH' ) ) exit;
、あなたのプラグイン・ファイルへの直接アクセスを防止することにより、セキュリティの余分なレイヤを追加します。ABSPATH
WordPressのコアで定義されているPHP定数です。
あなたのプラグインファイルは、ワードプレス、定数の外部からアクセスされた場合ABSPATH
、またはWPINC
定義されないので、それはあなたのコードへの不正アクセスを防止し、プラグインのコードを終了します。
ABSPATH
そして、WPINC
として、WordPressのコアで定義されています。
define( 'ABSPATH', dirname(dirname(__FILE__)) . '/' );
define( 'WPINC', 'wp-includes' );
両方とも同じ目的で使用されます。
WPINCとABSPATHの違いは何ですか?
自分で確認できます。ちょうど見wp-load.php
GitHubの上のWordPressのミラーに。
一目見ただけで、現在選択されている答えが、どのようABSPATH
に定義されているかに関して正しくないことがわかります。また、GitHubで異なるタグを比較すると、ABSPATH
定義が時間とともに実際に変化することがわかります。
それを行うための「正しい」方法はどれですか?
これらがセキュリティに使用されることを考えると、私は行きたいと思いますABSPATH
。ABSPATH
WPブートストラップで最初に定義されるだけでなくWPINC
、同じファイル内の条件の下で定義されるという理論的根拠は、結果として、将来の回帰を経験する可能性が高くなります。
また、明示的に尋ねられていませんが、との両方die
を使用して例を提供しましたexit
。devdocs.io
公式のAPIドキュメントに基づいているによると、とdie
同等exit
であるため、2つのうちのいずれかを選択でき、違いは生じません。
引数は両方die
ともexit
受け入れるため、異常終了時に暗号化されたバージョンタグや連絡先情報などの有用な情報を出力するために使用し0
たり-1
、さらに処理するために、またはさらに処理するために終了コードを渡すことを検討できます。
また、それwp_die
は注目に値することでもあります。PHPビルトインと混同しないでください。プレーンテキストに加えてHTMLを出力する際に使用するためにそれらを補完し、現在WordPressコア全体で自由に使用されています。学びの詳細wp_die
WordPress.orgに。
if ( ! defined( 'ABSPATH' ) ) exit;
、多分、このスニペットの範囲がよりあるので、そのワードプレスは、より良い「WPINC」でロードされていることを確認していることを考慮し、...しかしwordpressfull「WP」と見つめるが。