Как я могу остановить появление PHP-сообщений в Wordpress?

Я знаю о error_reporting(0); и ini_set('display_errors', false);, но в wordpress появляется уведомление:

Примечание. Преобразование массива в строку в /var/www/vhosts/treethink.net/subdomains/parkridge/httpdocs/wp-includes/formatting.php в строке 359 >

он отображается только в wordpress, а не на других страницах сайта.

Я проверил phpinfo(), и все настроено так, чтобы ошибки не отображались. Почему это еще отображается?

Вот строка, которая генерирует ошибку:

function wp_check_invalid_utf8( $string, $strip = false ) {
    $string = (string) $string;

Я кое-что изменил в wordpress, чтобы изменить работу галереи. Но не эта функция, и я не думаю, что я изменил любые вызовы к этой функции. Помимо появляющегося уведомления все работает отлично, мне просто нужно скрыть эту ошибку.

Ответ 1

Вам нужно изменить:

wp-config.php

и измените следующее:

error_reporting(0);
@ini_set('display_errors', 0);

иначе Wordpress перезаписывает ALERTS, заданный PHP.INI

Ответ 2

В wp-config.php добавьте эту строку:

define('WP_DEBUG_DISPLAY', false);

Это позволит или отключает отображение уведомлений и предупреждений на странице. Существует более подробное описание этого параметра и некоторые связанные с ним варианты:

http://codex.wordpress.org/Debugging_in_WordPress

Ответ 3

Январь 2015 с последним Wordpress, ни одно из вышеперечисленных работ для меня.

Создание php файла в папке mu-plugins Wordpress, например:

<?php
error_reporting(E_ALL &  ~( E_NOTICE | E_USER_NOTICE | E_STRICT | 
E_DEPRECATED | E_USER_DEPRECATED | E_WARNING | E_CORE_WARNING | 
E_USER_WARNING | E_COMPILE_WARNING | E_PARSE )); 

Просто назовите это все, что угодно...

Я получил ответ отсюда:

https://wycks.wordpress.com/2013/12/05/how-to-remove-error-notices-using-wordpresss-wp_debug/

Ответ 4

если вы хотите скрыть только ошибки, которые исходят от этой функции, вы можете использовать

@function wp_check_invalid_utf8( $string, $strip = false )
{

}

Ответ 5

В большинстве случаев им не о чем беспокоиться (хотя разработчик плагина/темы должен знать об этом, чтобы они могли исправить их в будущей версии). Предупреждения и уведомления PHP нечего беспокоиться на производственном сайте большую часть времени. Некоторые из них могут даже быть сгенерированы, потому что разработчик должен поддерживать совместимость со старыми версиями WordPress, а также с более старыми версиями PHP.

define('WP_DEBUG', false);

с этим

ini_set('log_errors','On');
ini_set('display_errors','Off');
ini_set('error_reporting', E_ALL );
define('WP_DEBUG', false);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

Если вы просто установите WP_DEBUG в false в файле wp-config.php, все должно быть в порядке. Они не влияют на ваш сайт.

Однако проблема заключается в том, что несколько раз вышеизложенное не работает. Это может произойти чаще всего на дешевых общих хостах, которые вынуждают отображать предупреждения и уведомления PHP. В этом случае вы можете заменить эту строку из файла wp-config.php:

Ответ 6

/**
 * For developers: WordPress debugging mode.
 *
 * Change this to true to enable the display of notices during development.
 * It is strongly recommended that plugin and theme developers use WP_DEBUG
 * in their development environments.
 */
define('WP_DEBUG', false);

// Enable Debug logging to the /wp-content/debug.log file
define('WP_DEBUG_LOG', false);

// Disable display of errors and warnings 
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors', 0);

Что я использую, и он работает с последней версией WordPress.