как получить каталог wp include? - PullRequest
3 голосов
/ 01 июня 2011

Мне нужно сделать require_once для разработки моего wp плагина.Мне кажется, что мне нужно использовать абсолютный путь.

мое текущее решение

$delimiter = strpos(dirname(__FILE__), "/")!==false?"/":"\\"; //win or unix?
$path = explode($delimiter,  dirname(__FILE__));

require_once join(array_slice($path,0,count($path)-3),$delimiter) . "/wp-admin/includes/plugin.php"; 

Интересно, есть ли лучший способ справиться с этим, своего рода общий подход.

Что если структура каталогов плагина wp изменится.Так что эта часть count($path)-3 больше не будет действительной ....

Ответы [ 5 ]

21 голосов
/ 16 июня 2012

WordPress устанавливает путь к каталогу включений при запуске.

require_once ABSPATH . WPINC . '/your-file.php';

7 голосов
/ 01 июня 2011

Попробуйте:

require_once realpath(__DIR__.'/../../..').'/wp-admin/includes/plugin.php';

Или замените __DIR__ на dirname(__FILE__), если вы используете

Или вы можете попробовать:

require_once ABSPATH . WPINC . '/plugin.php';
3 голосов
/ 11 февраля 2012

Можно воспользоваться WP_CONTENT_DIR и получить хорошую константу

define(WP_INCLUDE_DIR, preg_replace('/wp-content$/', 'wp-includes', WP_CONTENT_DIR));

или функцию

function wp_include_dir(){
    $wp_include_dir = preg_replace('/wp-content$/', 'wp-includes', WP_CONTENT_DIR));
    return $wp_include_dir;
}
2 голосов
/ 01 мая 2013

Раньше я определял ее как константу, как и другие ...

if(defined('WP_CONTENT_DIR') && !defined('WP_INCLUDE_DIR')){
   define('WP_INCLUDE_DIR', str_replace('wp-content', 'wp-includes', WP_CONTENT_DIR));
}

Еще можно проверить с помощью is_dir() и пройти дальше, если потребуется.

2 голосов
/ 01 июня 2011

Вы пытались делать bloginfo ('wpurl') / wp-content / plugins?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...