The deprecated_function_run WordPress PHP action fires when a deprecated function is called.
Usage
add_action('deprecated_function_run', 'your_custom_function', 10, 3); function your_custom_function($function_name, $replacement, $version) { // your custom code here }
Parameters
$function_name
(string) – The deprecated function that was called.$replacement
(string) – The function that should have been called instead.$version
(string) – The version of WordPress that deprecated the function.
More information
See WordPress Developer Resources: deprecated_function_run
Examples
Log deprecated function calls
Log deprecated function calls to a custom log file.
add_action('deprecated_function_run', 'log_deprecated_function_calls', 10, 3); function log_deprecated_function_calls($function_name, $replacement, $version) { // Create the log message $message = "Deprecated function '{$function_name}' called. Use '{$replacement}' instead. Deprecated since WP version {$version}."; // Write the message to a custom log file error_log($message, 3, '/path/to/custom.log'); }
Display deprecated function calls as admin notices
Show deprecated function calls as admin notices for debugging purposes.
add_action('deprecated_function_run', 'show_deprecated_function_notices', 10, 3); function show_deprecated_function_notices($function_name, $replacement, $version) { // Check if the current user can manage options (usually an administrator) if (current_user_can('manage_options')) { // Add the admin notice add_action('admin_notices', function() use ($function_name, $replacement, $version) { echo '<div class="notice notice-warning">'; echo '<p>'; echo "Deprecated function '<strong>{$function_name}</strong>' called. Use '<strong>{$replacement}</strong>' instead. Deprecated since WP version <strong>{$version}</strong>."; echo '</p>'; echo '</div>'; }); } }
Email deprecated function calls
Send an email to the administrator when a deprecated function is called.
add_action('deprecated_function_run', 'email_deprecated_function_calls', 10, 3); function email_deprecated_function_calls($function_name, $replacement, $version) { // Create the email subject and message $subject = "Deprecated function '{$function_name}' called on your WordPress site"; $message = "The deprecated function '{$function_name}' was called on your WordPress site. Use '{$replacement}' instead. Deprecated since WP version {$version}."; // Send the email to the site administrator wp_mail(get_option('admin_email'), $subject, $message); }
Add a CSS class to the body tag
Add a CSS class to the body tag when a deprecated function is called. Useful for visually identifying pages with deprecated functions during development.
add_action('deprecated_function_run', 'add_body_class_for_deprecated_functions', 10, 3); function add_body_class_for_deprecated_functions($function_name, $replacement, $version) { // Add a filter to the body_class function add_filter('body_class', function($classes) { $classes[] = 'deprecated-function-used'; return $classes; }); }
Disable deprecated functions in production
Prevent deprecated functions from running in a production environment.
add_action('deprecated_function_run', 'disable_deprecated_functions', 10, 3); function disable_deprecated_functions($function_name, $replacement, $version) { // Check if the current environment is production if (defined('WP_ENV') && WP_ENV === 'production') { // Show an error message and terminate the script wp_die("Deprecated function '{$function_name}' called. Use '{$replacement}' instead. Deprecated since WP version {$version}. Please update your code."); } }