Использование require_once в плагине WordPress?
В чём разница между этими двумя фрагментами кода, и какой из них следует использовать в плагине WordPress?
require_once(dirname(__FILE__).'/inc/canagan_admin_functions.php'); // Использует абсолютный путь от текущего файла
require_once( '/inc/canagan_admin_functions.php' ); // Использует относительный путь от корня сервера

Первый вариант означает...
Включить файл, найденный в директории
inc
, которая находится на уровень выше директории, где расположен этот файл.
Второй вариант означает...
в корне сервера (
/
) найти папкуinc
, а в ней — файлcanagan_admin_functions.php
, и подключить его.
Первый вариант сработает, а второй — нет. Во втором случае вы ищете файл в корне всей файловой системы, где его точно не будет.
Как дополнительное замечание: когда я начинаю работу над плагином, который будет состоять из нескольких файлов и/или подключать CSS или JS файлы, я обычно задаю несколько констант для удобства. Вот пример.
<?php
define( 'CD_PLUGIN_PATH', plugin_dir_path( __FILE__ ) );
define( 'CD_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
plugin_dir_path
и plugin_dir_url
удобны тем, что всегда возвращают пути/URL с завершающим слешем.
Затем для подключения файлов я использую эти константы. Это избавляет от необходимости каждый раз вызывать dirname(__FILE__)
при каждом включении файла.
Эти константы можно использовать для подключения файлов...
require_once( CD_PLUGIN_PATH . 'path/to/file.php' );
или для подключения скриптов и стилей...
<?php
add_action( 'wp_enqueue_scripts', 'wpse35088_enqueue' );
function wpse35088_enqueue()
{
wp_enqueue_script( 'wpse35088-script', CD_PLUGIN_URL . 'path/to/script.js' );
}
