Wordpress include ("../../../ wp-blog-header"); провал - PullRequest
3 голосов
/ 28 января 2010

В настоящее время я работаю над плагином для Wordpress, включающим множество файлов .php.Я вижу, что для моего файла AddShift.php мы успешно импортируем заголовок блога, используя следующую строку кода:

include("../../../wp-blog-header.php");

Однако, когда я пытаюсь сделать то же самое в моем файле ajax_cal_split.phpЯ получаю следующую ошибку:

Warning: include(./wp-blog-header.php) [function.include]: failed to open stream: No such file or directory in /opt/lampp/htdocs/sandboxj/blog/wp-content/plugins/Shifty/ajax_cal_split.php on line 11

Warning: include() [function.include]: Failed opening './wp-blog-header.php' for inclusion (include_path='.:/opt/lampp/lib/php') in /opt/lampp/htdocs/sandboxj/blog/wp-content/plugins/Shifty/ajax_cal_split.php on line 11

Строка 11, конечно, говорит:

include("../../../wp-blog-header.php");

Есть ли какая-либо причина для этого вызова работать с одним файлом .php, а не с другим, когда они находятсяв том же каталоге?

Ответы [ 4 ]

5 голосов
/ 28 февраля 2014

Это ваше решение, чтобы получить реальный путь в файле плагина

<?php
$scriptPath = dirname(__FILE__);
 $path = realpath($scriptPath . '/./');
 $filepath = explode("wp-content",$path);
// print_r($filepath);
define('WP_USE_THEMES', false);
require(''.$filepath[0].'/wp-blog-header.php');
1 голос
/ 28 января 2010

Да - я считаю, что WordPress использует механизм защиты содержимого в каталоге wp-content, у меня была такая же проблема с темами. Обходной путь, который я использовал, должен был включать с абсолютными путями.

0 голосов
/ 21 апреля 2011

работает, делай как предложено и используй абсолютный URL, я использовал

включают в себя ( "в.ч.-содержание / темы / YOUR_THEME / DESIRED_FILE.php");

0 голосов
/ 25 марта 2011

Вы должны попробовать использовать константу WP_PLUGIN_URL, предоставляемую WordPress. Например, вы можете определить фактический URL плагина следующим образом:

define('MyPLUGIN_URL', WP_PLUGIN_URL.'/plugin_folder/'); 

, а затем используйте его в своих звонках, как:

include(MyPLUGIN_URL."wp-blog-header.php");

Это то, как я решаю проблему, извините за поздний ответ, но это может помочь следующим проверить.

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