Restringir el acceso a xmlrpc.php
Soy bastante nuevo en WordPress y recientemente noté una gran cantidad de tráfico impactando en lo siguiente:
162.242.170.222 - - [01/Aug/2014:08:18:54 -0500] "POST /xmlrpc.php HTTP/1.0" 503 4859
162.242.170.222 - - [01/Aug/2014:08:19:01 -0500] "POST /xmlrpc.php HTTP/1.0" 503 4859
162.242.170.222 - - [01/Aug/2014:08:19:01 -0500] "POST /xmlrpc.php HTTP/1.0" 503 4859
162.242.170.222 - - [01/Aug/2014:08:19:02 -0500] "POST /xmlrpc.php HTTP/1.0" 503 4859
162.242.170.222 - - [01/Aug/2014:08:19:11 -0500] "POST /xmlrpc.php HTTP/1.0" 503 4861
162.242.170.222 - - [01/Aug/2014:08:19:13 -0500] "POST /xmlrpc.php HTTP/1.0" 503 4861
162.242.170.222 - - [01/Aug/2014:08:19:18 -0500] "POST /xmlrpc.php HTTP/1.0" 503 4861
Bloqueé la dirección IP lo cual es una solución temporal. ¿Existe una solución permanente para bloquear estas solicitudes, especialmente si no necesito
Si tu servidor es Apache, puedes bloquear el acceso antes de que WordPress siquiera sea alcanzado con una línea en tu archivo .htaccess:
Redirect 403 /xmlrpc.php
Puedes agregar otra línea para mantener la respuesta breve:
ErrorDocument 403 "no"
Esto enviará una respuesta muy mínima (dos bytes más los encabezados HTTP), y ahorrará tus recursos para un tráfico más valioso.

Existen plugins para eso: por ejemplo http://wordpress.org/plugins/disable-xml-rpc/
También puedes escribir un filtro tú mismo
add_filter('xmlrpc_enabled', '__return_false');
Puedes simplemente agregar este código al archivo functions.php de tu tema (ubicado en wp-content/themes/tu_tema).
Sin embargo, se recomienda crear un tema hijo (http://codex.wordpress.org/Theme_Development) para que tus modificaciones no desaparezcan al actualizar el tema.
Alternativamente, puedes crear tu propio plugin (http://codex.wordpress.org/Writing_a_Plugin) donde coloques todos tus ajustes de WordPress.
También agrego lo siguiente para una mejor protección:
/**
* Protege WordPress eliminando la versión
*/
remove_action('wp_head', 'wp_generator');
/**
* Protege WordPress ocultando errores de inicio de sesión
*/
function hide_login_errors($errors) { return 'Error de inicio de sesión'; }
add_filter('login_errors', 'hide_login_errors', 10, 1);

Sería bueno que agregaras una explicación sobre dónde colocar el código y las implicaciones de usar este método

Por favor no uses create_function()
. Nunca. Es difícil de leer y no puede almacenarse en un opcache.

Ya sea una función separada o un cierre.
