Проблема с wp-load.php, cron и require_once

abst
На сайте с 14.01.2011
Offline
138
4260

Имеется плагин Wordpress в котором подключается wp-load.php следующим образом:

require($_SERVER['DOCUMENT_ROOT'].'/wp-load.php');

При обращении через браузер к файлу плагина:

domain.com/wp-content/plugins/scores/get_data.php скрипт отрабатывает без проблем, но при вызове плагин скрипта через cron командой:

/usr/bin/php -q /var/www/user/data/www/domain.com/wp-content/plugins/scores/get_data.php

выводится ошибка:

PHP Warning:  require_once(/wp-load.php): failed to open stream: No such file or directory in /var/www/user/data/www/domain.com/wp-content/plugins/scores/get_data.php on line 17
PHP Fatal error: require_once(): Failed opening required '/wp-load.php' (include_path='/usr/share/php') in /var/www/user/data/www/domain.com/wp-content/plugins/scores/get_data.php on line 17

Проблема, на сколько я понимаю в include_path=. Как корректно определить новую include_path= в коде плагина с учетом того, что исполняемый файл плагина лежит в domain.com/wp-content/plugins/scores/, а файл wp-load.php в корне domain.com/wp-load.php?

Мои знания php и длительное гугление проблемы, к сожалению, не помогли решить проблему.

Облачные VPS с SSD (https://goo.gl/Z2PT6u) от 150 руб. ДЦ в МСК и СПБ. Utpime 99.9%. 100 рублей на тест в подарок!
SocFishing
На сайте с 26.09.2013
Offline
118
#1

это потому, что $_SERVER['DOCUMENT_ROOT'] при прямом запуске скорее всего нулевая.

if (!isset($_SERVER['DOCUMENT_ROOT']) || empty($_SERVER['DOCUMENT_ROOT']))
ini_set('include_path', "/var/www/user/data/www/domain.com/");

Как-то так попробуйте в начало файла get_data.php

★Сервис идентифицирует (https://socfishing.com/?utm_source=searchengines) посетителей вашего сайта и предоставляет их профили ВКонтакте, Телефон, Почта! Цены копеечные, работаем 8 лет.
SeVlad
На сайте с 03.11.2008
Offline
1609
#2
abst:
плагин Wordpress в котором подключается wp-load.php

Я бы уже тут задумался - нафига это нужно.

По проблеме согласен с SocFishingом.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
abst
На сайте с 14.01.2011
Offline
138
#3
SeVlad:
Я бы уже тут задумался - нафига это нужно.

Нужно это для того, чтобы использовать стандартный функционал WP, а не изобретать велосипед.

С проблемой разобрался переопределением Include_path, спасибо всем отписавшимся.

SeVlad
На сайте с 03.11.2008
Offline
1609
#4
abst:
Нужно это для того, чтобы использовать стандартный функционал WP, а не изобретать велосипед.

Вот именно что нужно использовать стандартный функционал (функции ВП), а не подключать файлы. Тем более такие небезопасные.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий