Le REST API et le XML RPC sont deux moyens pour effectuer des commandes à WordPress depuis l'extérieur, c'est-à-dire avec un autre application que votre tableau de bord sous wp-admin.
Ces fonctionnalités méritent d'être nativement présentes pour des projets gigantesques. Mais pour votre simple blog que vous administrez uniquement via wp-admin, il serait plus sûr de les désactiver.
Comme expliqué plus haut, ce sont deux moyens pour transmettre des informations à WordPress sans passer par le tableau de bord. Elles sont généralement utilisées par des scripts spécialement conçus pour.
Pensez à une cellule de prison. Plus il y a de portes, plus il y a risque qu'un criminel venant de l'extérieur puisse régler le compte à son ennemi derrière les barreaux. Par analogie, REST API et XML RPC sont deux portes pour parvenir au coeur de WordPress.
D'ailleurs, XML RPC est un vieux protocole, disons que c'est le jeune ancêtre de REST API qui, lui en revanche, est à son très jeune âge. En parlant d'âge, voici quelques points à retenir :
Voici alors le tutoriel pour désactiver ces deux portes si vous n'en utilisez pas ! Dans ce tutoriel, il faut toucher aux scripts. Si vous n'êtes pas vraiment familier, il y a quelques plugins comme SecuPress qui le font (à explorer par vous-même).
Ouvrez votre fichier functions.php dans le dossier de votre thème. Ajoutez ces lignes au bout du fichier :
// Disable REST API
remove_action( 'init', 'rest_api_init' );
remove_action( 'parse_request', 'rest_api_loaded' );
remove_action( 'xmlrpc_rsd_apis', 'rest_output_rsd' );
remove_action( 'wp_head', 'rest_output_link_wp_head' );
remove_action( 'template_redirect', 'rest_output_link_header', 11 );
remove_action( 'auth_cookie_malformed', 'rest_cookie_collect_status' );
remove_action( 'auth_cookie_expired', 'rest_cookie_collect_status' );
remove_action( 'auth_cookie_bad_username', 'rest_cookie_collect_status' );
remove_action( 'auth_cookie_bad_hash', 'rest_cookie_collect_status' );
remove_action( 'auth_cookie_valid', 'rest_cookie_collect_status' );
add_filter( 'rest_enabled', '__return_false' );
add_filter( 'rest_jsonp_enabled', '__return_false' );
Toujours dans functions.php, ajoutez ces lignes :
add_filter( 'xmlrpc_enabled', '__return_false' );
remove_action( 'wp_head', 'rsd_link' );
Et voilà. Cependant, il faut savoir que le tableau de bord WordPress utilisera bientôt le REST API. Donc, dans les prochaines versions de WordPress, il se pourrait que ces scripts vous jouent des mauvais tours. Rappelez-vous donc ce que vous avez fait.