Why is this an issue?

WordPress makes it possible to define options using define statements inside a configuration file named wp-config.php. However, if the statements are located after the settings are loaded at the end of this file, they are not taken into account by WordPress. This rule raises an issue when a define statement appears after wp-settings.php is loaded.

What is the potential impact?

This issue could entail more serious problems. A configuration that is security related could be ignored and not considered without any warning.

How to fix it in WordPress

Move the define statement before the statement loading wp-settings.php.

Code examples

Noncompliant code example

// in wp-config.php

define( 'WP_DEBUG', false );

/* Add any custom values between this line and the "stop editing" line. */


/* That's all, stop editing! Happy publishing. */

if ( ! defined( 'ABSPATH' ) ) {
        define( 'ABSPATH', __DIR__ . '/' );
}
require_once ABSPATH . 'wp-settings.php';

define( 'WP_POST_REVISIONS', 3 ); // Noncompliant

Compliant solution

// in wp-config.php

define( 'WP_DEBUG', false );

/* Add any custom values between this line and the "stop editing" line. */

define( 'WP_POST_REVISIONS', 3 ); // Noncompliant

/* That's all, stop editing! Happy publishing. */

if ( ! defined( 'ABSPATH' ) ) {
        define( 'ABSPATH', __DIR__ . '/' );
}
require_once ABSPATH . 'wp-settings.php';

Resources

Documentation