WordPress utilise XML-RPC pour permettre des communications à distance, notamment pour :
- Publier des articles via des applications tierces (ex: WordPress Mobile, Open Live Writer).
- Interagir avec WordPress via des API externes.
- Connecter des services comme Jetpack.
🔹 1. Vérifier si XML-RPC est activé sur WordPress
Depuis WordPress 5.5, XML-RPC est activé mais Jetpack et d’autres services peuvent le désactiver.
✅ Tester XML-RPC manuellement
https://votre-site.com/xmlrpc.php
//Si XML-RPC est activé, vous verrez :
XML-RPC server accepts POST requests only.
// Sinon, vous verrez une erreur 403, ce qui signifie que votre hébergeur ou un plugin (comme Wordfence) l'a désactivé.
🔹 2. Désactiver ou Activer XML-RPC
🛑 Désactiver XML-RPC (Si vous ne l’utilisez pas)
- Via
functions.php
(empêche son accès) :add_filter('xmlrpc_enabled', '__return_false');
- Via
.htaccess
(bloque les requêtes XML-RPC) :<Files xmlrpc.php> Order Allow,Deny Deny from all </Files>
- Via un plugin :
- Disable XML-RPC
- TC Security
- Wordfence Security (dans les paramètres avancés)
🔹 3. Faire une requête XML-RPC vers WordPress
Si XML-RPC est activé, voici comment publier un article via XML-RPC.
📤 Exemple d’envoi d’un article en PHP
<?php
$xmlrpc_url = "https://votre-site.com/xmlrpc.php";
$username = "admin";
$password = "votre-mot-de-passe";
// Création de la requête XML
$request = xmlrpc_encode_request("metaWeblog.newPost", [
1, // Blog ID (toujours 1 pour WordPress)
$username,
$password,
[
"title" => "Mon article XML-RPC",
"description" => "Ceci est un test d'article via XML-RPC.",
"categories" => ["Tech"],
"mt_keywords" => "XML-RPC, API, WordPress",
],
true // Publier directement (true) ou brouillon (false)
]);
// Envoi de la requête via cURL
$ch = curl_init($xmlrpc_url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Content-Type: text/xml"]);
$response = curl_exec($ch);
curl_close($ch);
// Afficher la réponse du serveur
echo "Réponse du serveur : " . htmlspecialchars($response);
🔹 4. Sécurité XML-RPC sur WordPress
🔴 Attention : XML-RPC est une cible fréquente des hackers (attaques par force brute, DDoS).
- Si vous ne l’utilisez pas, désactivez-le !
- Si vous en avez besoin, restreignez l’accès :
- Bloquez les requêtes non authentifiées avec un pare-feu (ex: Wordfence).
- Utilisez un fichier
.htaccess
pour autoriser uniquement certaines IP :
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
Allow from 203.0.113.5
</Files>
✅ Conclusion
- XML-RPC permet d’interagir avec WordPress à distance.
- Depuis WordPress 5.5, REST API est privilégiée à XML-RPC.
- Si vous utilisez XML-RPC, sécurisez-le pour éviter les attaques.
Besoin d’aide sur un point précis ? contactez nous 😊🚀