Відповіді:
Вони визначаються наступним чином:
define( 'ABSPATH', dirname(dirname(__FILE__)) . '/' );
define( 'WPINC', 'wp-includes' );
dirname
це функція PHP, яка повертає шлях до батьківського каталогу, і wp-includes
досить сама пояснювальна.
Я б сказав, що ABSPATH
це краще, тому що це одне з перших речей, яке завантажує WP, і воно також виглядає краще :) Але немає справжнього "правильного шляху", оскільки вони працюють обоє.
if ( ! defined( 'WPINC' ) ) die;
і if ( ! defined( 'ABSPATH' ) ) exit;
додайте додатковий рівень безпеки, запобігаючи будь-який прямий доступ до вашого файла плагіна. ABSPATH
- константа PHP, визначена WordPress у своїй основі.
Якщо доступ до вашого файла плагінів знаходиться за межами WordPress, константа ABSPATH
або WPINC
не буде визначена, тому він виходить з коду плагіна, запобігаючи будь-якому несанкціонованому доступу до вашого коду.
ABSPATH
і WPINC
визначаються в ядрі WordPress як:
define( 'ABSPATH', dirname(dirname(__FILE__)) . '/' );
define( 'WPINC', 'wp-includes' );
Обидва використовуються з однаковою метою.
Які відмінності між WPINC та ABSPATH?
Ви можете перевірити себе. Просто подивіться наwp-load.php
на дзеркало WordPress на GitHub.
Навіть швидкий погляд покаже, що обрана на даний момент відповідь більше не є правильною щодо того, як ABSPATH
визначено. І якщо порівнювати різні теги на GitHub, ви побачите, що ABSPATH
визначення фактично змінюється з часом.
Який із них є правильним?
Враховуючи, що вони використовуються для безпеки, я б пішов ABSPATH
. Це обґрунтування, яке ABSPATH
не тільки визначено першим у завантажувальній програмі WP,WPINC
визначається умовно в тому самому файлі і, як результат, більше шансів зазнати регресії в майбутньому.
Крім того, не вимагаючи прямого запиту, ви надали приклади, використовуючи і die
і, і exit
. Згідно devdocs.io
, яка спирається на офіційну документацію API, die
рівнозначнаexit
, тому ви можете вибрати будь-яке з двох, і це не змінить значення.
Обидва die
і exit
приймають аргументи, тому ви можете розглянути можливість їх використання для виведення деякої корисної інформації, наприклад, зашифрованого тегу версії або контактної інформації, або залишити код виходу, наприклад0
або-1
для подальшої обробки.
Також варто зазначити, що wp_die
це теж річ. Не плутати з вбудованими PHP, але компліменти для використання у виведенні HTML на додаток до простого тексту та в даний час використовується в основному в ядрі WordPress. Дізнайтеся більше проwp_die
WordPress.org.
if ( ! defined( 'ABSPATH' ) ) exit;
... але, можливо, врахуйте, що сфера застосування цього фрагмента гарантує, що Wordpress завантажений "WPINC" краще, тому що більше wordpressfull дивиться на "WP".