Turn off deprecated errors in PHP 5.3

My server is running PHP 5.3 and my WordPress install is spitting these errors out on me, causing my session_start() to break.

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 647

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 662

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 669

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 676

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 712

This is annoying, but I do not want to turn off on screen error reporting. How do I disable these bothersome deprecated warnings?

Read More

I am running WordPress 2.9.2.

Related posts

Leave a Reply

10 comments

  1. You can do it in code by calling the following functions.

    error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
    

    or

    error_reporting(E_ALL ^ E_DEPRECATED);
    
  2. To only get those errors that cause the application to stop working, use:

    error_reporting(E_ALL ^ (E_NOTICE | E_WARNING | E_DEPRECATED));
    

    This will stop showing notices, warnings, and deprecated errors.

  3. I just faced a similar problem where a SEO plugin issued a big number of warnings making my blog disk use exceed the plan limit.

    I found out that you must include the error_reporting command after the wp-settings.php require in the wp-config.php file:

       require_once( ABSPATH .'wp-settings.php' );
       error_reporting( E_ALL ^ ( E_NOTICE | E_WARNING | E_DEPRECATED ) );
    

    by doing this no more warnings, notices nor deprecated lines are appended to your error log file!

    Tested on WordPress 3.8 but I guess it works for every installation.

  4. You have to edit the PHP configuration file. Find the line

    error_reporting = E_ALL
    

    and replace it with:

    error_reporting = E_ALL ^ E_DEPRECATED

    If you don’t have access to the configuration file you can add this line to the PHP WordPress file (maybe headers.php):

    error_reporting(E_ALL ^ E_DEPRECATED);
    
  5. All the previous answers are correct. Since no one have hinted out how to turn off all errors in PHP, I would like to mention it here:

    error_reporting(0); // Turn off warning, deprecated,
                        // notice everything except error
    

    Somebody might find it useful…

  6. I tend to use this method

    $errorlevel=error_reporting();
    $errorlevel=error_reporting($errorlevel & ~E_DEPRECATED);
    

    In this way I do not turn off accidentally something I need

  7. If PHP warnings are breaking things in WordPress, but you still want to know what the warnings are, you can disable displaying PHP errors/warnings and only send them to the log file:

    define( 'WP_DEBUG', true );
    define( 'WP_DEBUG_DISPLAY', false );
    define( 'WP_DEBUG_LOG', true );
    
  8. this error occur when you change your php version: it’s very simple to suppress this error message

    To suppress the DEPRECATED Error message, just add below code into your index.php file:

    init_set(‘display_errors’,False);