wp-admin/includes/file.php:2714Attempts to clear the opcode cache for an individual PHP file.
$filepathstring$forcebooloptionalfalseboolOne hook fires while wp_opcache_invalidate() runs, in this order:
Filters whether to invalidate a file from the opcode cache.
function wp_opcache_invalidate( $filepath, $force = false ) { static $can_invalidate = null; /* * Check to see if WordPress is able to run `opcache_invalidate()` or not, and cache the value. * * First, check to see if the function is available to call, then if the host has restricted * the ability to run the function to avoid a PHP warning. * * `opcache.restrict_api` can specify the path for files allowed to call `opcache_invalidate()`. * * If the host has this set, check whether the path in `opcache.restrict_api` matches * the beginning of the path of the origin file. * * `$_SERVER['SCRIPT_FILENAME']` approximates the origin file's path, but `realpath()` * is necessary because `SCRIPT_FILENAME` can be a relative path when run from CLI. * * For more details, see: * - https://www.php.net/manual/en/opcache.configuration.php * - https://www.php.net/manual/en/reserved.variables.server.php * - https://core.trac.wordpress.org/ticket/36455 */ if ( null === $can_invalidate && function_exists( 'opcache_invalidate' ) && ( ! ini_get( 'opcache.restrict_api' ) || stripos( realpath( $_SERVER['SCRIPT_FILENAME'] ), ini_get( 'opcache.restrict_api' ) ) === 0 ) ) { $can_invalidate = true; } // If invalidation is not available, return early. if ( ! $can_invalidate ) { return false; } // Verify that file to be invalidated has a PHP extension. if ( '.php' !== strtolower( substr( $filepath, -4 ) ) ) { return false; } /** * Filters whether to invalidate a file from the opcode cache. * * @since 5.5.0 * * @param bool $will_invalidate Whether WordPress will invalidate `$filepath`. Default true. * @param string $filepath The path to the PHP file to invalidate. */ if ( apply_filters( 'wp_opcache_invalidate_file', true, $filepath ) ) { return opcache_invalidate( $filepath, $force ); } return false;}Introduced in 5.5.0. Unchanged from 6.7.7 through 7.1.0.
Signature, return type and hooks compared across 5 parsed releases.
src/wp-admin/includes/file.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.