При обновлении версии PHP появляется предупреждение "Use of undefined constant WP_CONTENT_DIR"
На моем общем хостинге HostGator с возможностью настройки PHP для каждого домена через CPanel, при включении PHP 7.3 (или других версий 7.x) для существующего блога появляется страница с ошибкой:
Warning: Use of undefined constant WP_CONTENT_DIR – assumed 'WP_CONTENT_DIR' (это вызовет ошибку в будущих версиях PHP) в /my_site/public_html/wp-includes/load.php на строке 141 Похоже, что в вашей установке PHP отсутствует расширение MySQL, которое требуется для WordPress
Когда я ищу это в Google, все советы касаются установки mysqld
, но он наверняка уже установлен, так как свежая установка WordPress на отдельном поддомене прекрасно работает с PHP 7.3. Вероятно, я что-то упускаю в файле wp-config.php
моего старого сайта. Однако, сравнивая рабочие и нерабочие версии, я не вижу явных различий.
Вот что помогло в моем случае: мой сайт на WordPress, размещенный у Hostgator, выдавал ту же ошибку, пока я не закомментировал корневой файл .htaccess
. Вот так:
Мой сайт является поддоменом, поэтому у него был собственный .htaccess
, в котором и была указана версия PHP (cPanel сделал это автоматически). Мне не пришлось редактировать wp-config.php
или другие файлы.
Это решение я нашел в комментариях к этой записи:
https://wordpress.org/support/topic/php-7-3-errors/#post-12720824

Обычно константа WP_CONTENT_DIR определяется в файле https://developer.wordpress.org/reference/files/wp-includes/default-constants.php/ (который загружается после wp-settings.php):
if ( ! defined( 'WP_CONTENT_DIR' ) ) {
define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' );
// Без завершающего слеша, только абсолютные пути - WP_CONTENT_URL определяется ниже.
}
Это установит WP_CONTENT_DIR
по умолчанию в папку 'wp-content' вашего сайта, если вы (или кто-то/что-то) не определили это ранее в wp-config.php
с помощью команды вроде этой:
define('WP_CONTENT_DIR', '/путь/до/wordpress/wp-content');
В «чистой»/стандартной установке не должно быть этого DEFINE в файле wp-settings
. Возможно, у вас есть плагин или функция, которая переместила папку контента в новое местоположение в качестве «метода безопасности» (хотя полезность этого спорна — «безопасность через неясность» работает не так хорошо) и изменила значение переменной WP_CONTENT_DIR
.
Поэтому проверьте ваш файл wp-settings.php
на наличие этого оператора DEFINE. Удалите его (если вы действительно не хотите, чтобы ваши файлы wp-content
находились в другом месте), или найдите на вашем сайте плагин, который делает это.

В моём случае одновременно работали два файла .htaccess (один в "public_html" и один выше корневой директории), что вызывало конфликт. Я удалил файл, и это сработало. Таким образом мне удалось решить проблему с обновлением версии WordPress.
Оригинальная статья с этим решением: https://iiiji.com/fix-php-upgrade-error-whm-cpanel/

Я только что обновил версию PHP с 7.0 до 7.4 через Multi Php Editor для своего сайта и столкнулся с ошибкой "Use of undefined constant WP_CONTENT_DIR – assumed ‘WP_CONTENT_DIR’".
После этого я понизил версию обратно до 7.0 и получил следующую ошибку:
Ваша установка PHP, похоже, не содержит расширение MySQL, которое требуется для работы WordPress.
Затем я снова обновил версию до 7.4.
Как я решил проблему? Просто удалил файл .htaccess и обновил страницу. После этого все заработало как надо.
Спасибо
