Лучший способ найти путь к файлу с помощью require()

require( dirname(dirname(dirname(dirname(dirname(dirname(dirname( __FILE__ ))))))).'/wp-load.php' );

это код, который я использую в настоящее время. Код находится в файле с именем config.php

Это структура:

WordPress \ WP-содержание \ темы \\ Plugins \ шорткоды-Конечная \ Lib\config.php

и мне нужно добраться до "wordpress / wp-load.php".

get_bloginfo () не работает в config.php. Как мне его проще включить?

3 ответа

Решение

Что случилось с

require("../../../../../../wp-load.php");

?

И действительно ли вы хотите, чтобы ваш плагин находился в теме?

Добавьте полный путь к wordpress к пути включения где-то в начале ваших сценариев, затем мы используем "короткую" версию для всех ваших включений:

set_include_path("/path/to/wordpress" . DIRECTORY_SEPERATOR . get_include_path());
...
require("wp-load.php");

Обратите внимание, что вы также должны осмотреть путь и посмотреть, соответствует ли он тому, что вы ожидаете. Существует небольшая вероятность того, что каталог WordPress уже находится где-то на вашем пути, и что проблема является ведущей /(т.е. имейте в виду, что пути "/wp-load.php" ОЧЕНЬ отличается от "wp-load.php"

Также обратите внимание, что "/path/to/wordpress" также может быть относительным.

Я сделал кое-что, чтобы получить сумму ../Необходимо найти wp-load.php (по крайней мере, если ваш код находится в wp-контенте):

$current = preg_split('/\//', preg_split('/wp-content/', getcwd())[1]);
$line = '';
foreach($current as $dots) {
    $line .='../';
}
require($line.'wp-load.php');
Другие вопросы по тегам