回答:
if ( ! defined( 'WPINC' ) ) die;そしてif ( ! defined( 'ABSPATH' ) ) exit;、あなたのプラグイン・ファイルへの直接アクセスを防止することにより、セキュリティの余分なレイヤを追加します。ABSPATHWordPressのコアで定義されている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。ABSPATHWPブートストラップで最初に定義されるだけでなく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」と見つめるが。