Is There a Way to Completely Turn Off Pingbacks/Trackbacks?

There is the option to turn off trackbacks/pingbacks under Settings > Discussion.

But I’d like remove the X-Pingback header WordPress sends and completely remove the the trackback endpoint.

Is there a way to do this?


Plugin Name: [RPC] XMLRPCless Blog
Plugin URI:
Description: Disable XMLRPC advertising/functionality blog-wide.
Version: 0.0.7
Author: EarnestoDev
Author URI:
// Disable X-Pingback HTTP Header.
add_filter('wp_headers', function($headers, $wp_query){
        // Drop X-Pingback
    return $headers;
}, 11, 2);
// Disable XMLRPC by hijacking and blocking the option.
add_filter('pre_option_enable_xmlrpc', function($state){
    return '0'; // return $state; // To leave XMLRPC intact and drop just Pingback
// Remove rsd_link from filters (<link rel="EditURI" />).
add_action('wp', function(){
    remove_action('wp_head', 'rsd_link');
}, 9);
// Hijack pingback_url for get_bloginfo (<link rel="pingback" />).
add_filter('bloginfo_url', function($output, $property){
    return ($property == 'pingback_url') ? null : $output;
}, 11, 2);
// Just disable functionality while leaving XMLRPC intact?
add_action('xmlrpc_call', function($method){
    if($method != '') return;
        'Pingback functionality is disabled on this Blog.',
        'Pingback Disabled!',
        array('response' => 403)

Use this for a plugin in /wp-content/plugins or /wp-content/mu-plugins (for auto-activation). Or functions.php.

Funny thing is I sell a WordPress Remote Publishing Library and gave you the code to disable XMLRPC 🙂 Bad for reputation.

Leave a Comment