Existe la opción de desactivar trackbacks / pingbacks en Settings > Discussion
.
Pero me gustaría eliminar el X-Pingback
encabezado que envía WordPress y eliminar completamente el trackback
punto final.
¿Hay alguna forma de hacer esto?
<?php
/*
Plugin Name: [RPC] XMLRPCless Blog
Plugin URI: http://earnestodev.com/
Description: Disable XMLRPC advertising/functionality blog-wide.
Version: 0.0.7
Author: EarnestoDev
Author URI: http://earnestodev.com/
*/
// Disable X-Pingback HTTP Header.
add_filter('wp_headers', function($headers, $wp_query){
if(isset($headers['X-Pingback'])){
// Drop X-Pingback
unset($headers['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 pingback.ping functionality while leaving XMLRPC intact?
add_action('xmlrpc_call', function($method){
if($method != 'pingback.ping') return;
wp_die(
'Pingback functionality is disabled on this Blog.',
'Pingback Disabled!',
array('response' => 403)
);
});
?>
Use esto para un complemento en / wp-content / plugins o / wp-content / mu-plugins (para la activación automática) . O funciones.php .
Lo curioso es que vendo una biblioteca de publicación remota de WordPress y le di el código para deshabilitar XMLRPC :) Malo para la reputación.
return '0'
no va a funcionar como esperabas. La cadena'0'
devolverá verdadero.add_filter( 'pre_option_enable_xmlrpc', '__return_false' );
@EarnestoDev tuvo una gran respuesta , pero ahora está un poco desactualizada desde los recientes exploits xml-rcp .
He creado una versión actualizada que creo que bloquea todo el acceso posible a ella. Sin embargo, tenga en cuenta que existen algunos complementos que utilizan la funcionalidad de pingback / trackback XML-RPC y podrían tener problemas si los está utilizando:
Aquí hay una versión actualizada a continuación. Para descargarlo, puede copiarlo en un archivo de complemento, colocarlo en complementos mu o descargarlo en github :
Además, si desea cerrar todos los pingback existentes, siga estos pasos:
1) Abra phpmyadmin y navegue a la sección SQL:
2) Ingrese lo siguiente:
3) Todos los pingbacks existentes ahora deberían estar cerrados
fuente