После подключения ядра WP не работает вывод
-
При подключении в php-скрипте, исполняемом по Cron на сервере файла ядра WP (wp-load.php) перестаёт работать любой вывод на экран (print, echo). Подскажите пожалуйста, какие могут причины стольстранного поведения скрипта? Первый раз в моей практике такое…
-
boyka1966, привет. Непонятно что за скрипт, чего добиваетесь при его выполнении и т.п., так что советы будут базовые на этот случай: а) попробуйте выполнить сброс буфера через
ob_end_flush();после подключенияwp-load.php; б) при подключенииwp-load.phpиспользуйте абсолютные пути; в) дебаг с перенаправлением вывода и ошибок в файл для дальнейшего анализа.Здравствуйте, спасибо что откликнулись.
Пока весь скрипт состоит из подключения ядра WP, включения вывода ошибок. После этого пытаюсь вывести тестовое «Ок». Вот здесь и проблема — выводне работает, хоть тресни! А как отлаживать скрипт без возможности вывода промежуточных результатов…!?boyka1966,
А как отлаживать скрипт без возможности вывода промежуточных результатов…!?
Всё это можно делать, только цели и способы разные. Если у вас базовый скрипт с выводом тестового сообщения, напишите здесь код целиком, так будет проще и понятнее в какую сторону двигаться.
Да сейчас всё примитивнее некуда... Вот весь скрипт (ниже). Убрал только открывающие и закрывающие теги PHP.
//Включить сообщения об ошибках
//ini_set('display_errors', 'On');
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);//выводить все ошибки
//error_reporting(E_ERROR);//выводить только фатальные ошибки
//Включить сообщения об ошибках #
//Служебные константы
define('WP_USE_THEMES', false); // отключает загрузку темы
//Служебные константы #
//Подключение API WordPress
require_once('/home/g/gearedm/geared-motor/public_html/wp-load.php');//только ядро
ob_end_flush();
require_once('/home/g/gearedm/geared-motor/public_html/wp-admin/includes/taxonomy.php');
require_once('/home/g/gearedm/geared-motor/public_html/wp-admin/includes/media.php');
require_once('/home/g/gearedm/geared-motor/public_html/wp-admin/includes/file.php');
require_once('/home/g/gearedm/geared-motor/public_html/wp-admin/includes/image.php');
//Подключение API WordPress #
echo('Ok');boyka1966, окей, а что видите при обращении к этому файлу и что ожидаете увидеть?
Вижу ряд сообщений уровня Notice и Deprecated. И всё.
А ожидаю увидеть (после них) вывод буковокOkА этого не происходит!
boyka1966, вы на какой версии PHP всё это запускаете и какая у вас версия WordPress?
WP: 6.9.1
PHP: 8.4boyka1966, было бы проще всего проверить работоспособность тестового кода на чистой установке, потому что на актуальных версиях PHP и WordPress как раз должно быть сообщение
OK. Если нет возможности такой проверки, напишите что заDeprecatedиNoticeвидите на экране, попробуем от этого оттолкнуться.На чистой установке долго и не имеет особого смысла - решать то задачу необходимо на конкретном сайте! Перечень сообщений системы ниже:
Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for theacfdomain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at theinitaction or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/g/gearedm/geared-motor/public_html/wp-includes/functions.php on line 5503
Deprecated: WGZ_Views::get_template(): Implicitly marking parameter $page as nullable is deprecated, the explicit nullable type must be used instead in /home/g/gearedm/geared-motor/public_html/wp-content/plugins/clearfy/components/assets-manager/includes/classes/class-views.php on line 62
Deprecated: WGZ_Views::print_template(): Implicitly marking parameter $page as nullable is deprecated, the explicit nullable type must be used instead in /home/g/gearedm/geared-motor/public_html/wp-content/plugins/clearfy/components/assets-manager/includes/classes/class-views.php on line 85
Deprecated: WRIO_Views::get_template(): Implicitly marking parameter $page as nullable is deprecated, the explicit nullable type must be used instead in /home/g/gearedm/geared-motor/public_html/wp-content/plugins/robin-image-optimizer/includes/classes/class-rio-views.php on line 55
Deprecated: WRIO_Views::print_template(): Implicitly marking parameter $page as nullable is deprecated, the explicit nullable type must be used instead in /home/g/gearedm/geared-motor/public_html/wp-content/plugins/robin-image-optimizer/includes/classes/class-rio-views.php on line 77
Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for thewoocommercedomain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at theinitaction or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/g/gearedm/geared-motor/public_html/wp-includes/functions.php on line 5503
Notice: Функция _load_textdomain_just_in_time вызвана неправильно. Загрузка перевода для доменаwoodmartбыла запущена слишком рано. Обычно это индикатор того, что какой-то код в плагине или теме запускается слишком рано. Переводы должны загружаться при выполнении действияinitили позже. Дополнительную информацию можно найти на странице «Отладка в WordPress». (Это сообщение было добавлено в версии 6.7.0.) in /home/g/gearedm/geared-motor/public_html/wp-includes/functions.php on line 5503
Deprecated: Creation of dynamic property WOODMART_Wpbcssgenerator::$_notices is deprecated in /home/g/gearedm/geared-motor/public_html/wp-content/themes/woodmart/inc/classes/Wpbcssgenerator.php on line 10
Notice: Функция wp_enqueue_script вызвана неправильно. Скрипты и стили можно регистрировать или добавлять в очередь не раньше действийwp_enqueue_scripts,admin_enqueue_scriptsилиlogin_enqueue_scripts. Это уведомление вызвано из элемента управленияcustom_script. Дополнительную информацию можно найти на странице «Отладка в WordPress». (Это сообщение было добавлено в версии 3.3.0.) in /home/g/gearedm/geared-motor/public_html/wp-includes/functions.php on line 5503
Deprecated: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in /home/g/gearedm/geared-motor/public_html/wp-content/plugins/multiple-domain/MultipleDomain.php on line 451
Deprecated: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in /home/g/gearedm/geared-motor/public_html/wp-content/plugins/multiple-domain/MultipleDomain.php on line 452
Notice: ob_end_flush(): Failed to delete and flush buffer. No buffer to delete or flush in /home/g/gearedm/geared-motor/public_html/wp-content/themes/woodmart/rewrite-sity-content.php on line 1595boyka1966, у вас специфический набор плагинов, которые нуждаются в обновлении со стороны их разработчиков. Без этого шага вам будет проще грузить только ядро движка или прибегнуть к циганским фокусам вроде
define( 'WP_INSTALLING', true );, чтобы не трогать лишний раз плагины. Дальше уже всё будет зависеть от конкретной задачи.Плагины, дающие предупреждения, я отключал. Не помогает…
К сожалению, использование define(‘SHORTINIT’, true) не допустимо, т.к не позволяет использовать необходимые функции WP!
Большое спасибо за помощь!
В данном случае задача не сложная, не ресурсоёмкая, разовая. Я решу её путём встраивания скрипта в страницу, без использования Cron.
А вот если такая же хрень вылезет при решении серьёзной задачи, то караул.
Для ответа на тему необходимо авторизоваться.