Workflow n8n

Automatisation WordPress avec n8n : publication via HTTP Request

Ce workflow n8n permet d'automatiser la publication de contenu sur WordPress.com en utilisant une requête HTTP. Idéal pour les blogueurs et les équipes marketing, ce processus simplifie la gestion des publications en ligne. En déclenchant manuellement le workflow, vous pouvez préparer un contenu qui sera ensuite envoyé directement à votre site WordPress. Le workflow commence par un déclencheur manuel qui active les différentes étapes. Ensuite, les paramètres sont configurés via le noeud 'Settings'. Le contenu à publier est préparé dans le noeud 'PrepareXML', où le code JavaScript peut être utilisé pour formater les données selon les besoins. Une fois le contenu prêt, une requête HTTP est effectuée via le noeud 'PostRequest', qui envoie les données à l'API de WordPress. Après l'envoi, le workflow vérifie si la requête a été réussie grâce au noeud 'IsSuccessful'. En cas de succès, le workflow se termine normalement, sinon il gère les erreurs via le noeud 'Error'. Grâce à cette automatisation n8n, les utilisateurs peuvent gagner un temps précieux et réduire les risques d'erreurs manuelles lors de la publication de contenu.

Tags clés :automatisationWordPressHTTP Requestn8npublication
Catégorie: Manual · Tags: automatisation, WordPress, HTTP Request, n8n, publication0

Workflow n8n WordPress, HTTP Request, publication : vue d'ensemble

Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.

Workflow n8n WordPress, HTTP Request, publication : détail des nœuds

  • Settings

    Ce noeud configure les paramètres et les affectations pour le workflow.

  • ManualTrigger

    Ce noeud déclenche manuellement l'exécution du workflow.

  • Sticky Note

    Ce noeud crée une note autocollante avec des dimensions et un contenu spécifiés.

  • Sticky Note2

    Ce noeud génère une note autocollante colorée avec des dimensions et un contenu définis.

  • Sticky Note5

    Ce noeud produit une note autocollante avec une couleur, des dimensions et un contenu spécifiés.

  • Success

    Ce noeud indique une opération réussie sans effectuer d'action supplémentaire.

  • Error

    Ce noeud signale une opération échouée sans exécuter d'action supplémentaire.

  • PrepareXML

    Ce noeud prépare un document XML en exécutant un code JavaScript spécifié.

  • PostRequest

    Ce noeud envoie une requête HTTP à une URL donnée avec un corps et une méthode spécifiés.

  • IsSuccessful

    Ce noeud évalue si la réponse d'une opération est réussie en fonction de conditions définies.

  • HandleResponse

    Ce noeud traite une réponse XML selon les options spécifiées.

Inscris-toi pour voir l'intégralité du workflow

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "id": "yPIST7l13huQEjY5",
  "meta": {
    "instanceId": "98bf0d6aef1dd8b7a752798121440fb171bf7686b95727fd617f43452393daa3",
    "templateCredsSetupCompleted": true
  },
  "name": "Use XMLRPC via HttpRequest-node to post on Wordpress.com",
  "tags": [
    {
      "id": "uumvgGHY5e6zEL7V",
      "name": "Published Template",
      "createdAt": "2025-02-10T11:18:10.923Z",
      "updatedAt": "2025-02-10T11:18:10.923Z"
    }
  ],
  "nodes": [
    {
      "id": "8a64ffca-804a-4793-a721-3cb670aec22f",
      "name": "Settings",
      "type": "n8n-nodes-base.set",
      "position": [
        -380,
        -700
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "1be018c7-51fe-4ea2-967d-ce47a2e8795c",
              "name": "wordpressUrl",
              "type": "string",
              "value": "YOURBLOG.wordpress.com"
            },
            {
              "id": "95377f4f-184b-46a7-94c7-b2313c314cb2",
              "name": "wordpressUsername",
              "type": "string",
              "value": "YourUserName"
            },
            {
              "id": "fdc99dc6-d9b0-4d2f-b770-1d8b6b360cad",
              "name": "wordpressApplicationPassword",
              "type": "string",
              "value": "your 4app pass word"
            },
            {
              "id": "5aee5eef-9ad2-4dfb-a63f-1b5228c47e31",
              "name": "contentTitle",
              "type": "string",
              "value": "This is a demo title"
            },
            {
              "id": "2abf516c-2910-4cd0-89fe-119cd0e616c8",
              "name": "contentText",
              "type": "string",
              "value": "This is the main text."
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "157b9656-5d90-44f4-aa3c-1285cda698d8",
      "name": "ManualTrigger",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -580,
        -700
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "1d2f6916-e5bd-497b-9843-8bb5a48e9866",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -420,
        -820
      ],
      "parameters": {
        "width": 180,
        "height": 360,
        "content": "## Settings"
      },
      "typeVersion": 1
    },
    {
      "id": "1306446a-f628-44ba-9ca5-751b634bd5dd",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        140,
        -820
      ],
      "parameters": {
        "color": 5,
        "width": 720,
        "height": 360,
        "content": "## Response Handling"
      },
      "typeVersion": 1
    },
    {
      "id": "ec3006aa-34c8-4522-8c37-980f68f168b5",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -220,
        -820
      ],
      "parameters": {
        "color": 3,
        "width": 340,
        "height": 360,
        "content": "## Request Sending"
      },
      "typeVersion": 1
    },
    {
      "id": "bc918075-bea5-4a27-90d9-874b0917a958",
      "name": "Success",
      "type": "n8n-nodes-base.noOp",
      "position": [
        660,
        -780
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "3ea541b7-080e-4694-b865-d7d04f69ea0c",
      "name": "Error",
      "type": "n8n-nodes-base.noOp",
      "position": [
        660,
        -620
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "457c0687-ac1d-49e2-b434-6e1de9acb3a3",
      "name": "PrepareXML",
      "type": "n8n-nodes-base.code",
      "notes": "(request payload, escaping)",
      "position": [
        -180,
        -700
      ],
      "parameters": {
        "mode": "runOnceForEachItem",
        "jsCode": "const input = $json; // If other nodes are in between: $('Settings').item.json;\n\nconst username = input.wordpressUsername;\nconst password = input.wordpressApplicationPassword;\nconst title = input.contentTitle;\nconst text = input.contentText;\n\nconst blogId = 0;\nconst published = 1; // 0 = draft, 1 = published\n\n\n// Helper function to escape XML special characters\nfunction escapeXml(unsafe) {\n  return unsafe.replace(/[<>&'\"]/g, (c) => {\n    switch (c) {\n      case '<': return '&lt;';\n      case '>': return '&gt;';\n      case '&': return '&amp;';\n      case '\\'': return '&apos;';\n      case '\"': return '&quot;';\n      default: return c;\n    }\n  });\n}\n\n// Your actual post text, which may contain characters needing escaping\nconst titleEscaped = escapeXml(title);\nconst textEscaped = escapeXml(text);\n\n// Build the XML payload\nconst xmlData = `<?xml version=\"1.0\"?>\n<methodCall>\n  <methodName>wp.newPost</methodName>\n  <params>\n    <param>\n      <value><string>${blogId}</string></value>\n    </param>\n    <param>\n      <value><string>${username}</string></value>\n    </param>\n    <param>\n      <value><string>${password}</string></value>\n    </param>\n    <param>\n      <value>\n        <struct>\n          <member>\n            <name>post_title</name>\n            <value><string>${titleEscaped}</string></value>\n          </member>\n          <member>\n            <name>post_content</name>\n            <value><string>${textEscaped}</string></value>\n          </member>\n        </struct>\n      </value>\n    </param>\n    <param>\n      <value><boolean>${published}</boolean></value>\n    </param>\n  </params>\n</methodCall>`;\n\n\n// Add a new field called 'myNewField' to the JSON of the item\n$input.item.json.xmlRequestBody = xmlData;\n\nreturn $input.item;"
      },
      "notesInFlow": true,
      "typeVersion": 2
    },
    {
      "id": "3f29f3ed-f7ae-475b-bce3-04d3eeeacee9",
      "name": "PostRequest",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -20,
        -700
      ],
      "parameters": {
        "url": "=https://{{ $('Settings').item.json.wordpressUrl }}/xmlrpc.php",
        "body": "={{ $json.xmlRequestBody }}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "raw",
        "sendHeaders": true,
        "rawContentType": "text/xml",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "text/xml"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "5f320d9b-8aa9-4d13-83db-86acaf444e92",
      "name": "IsSuccessful",
      "type": "n8n-nodes-base.if",
      "position": [
        420,
        -700
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "815d85a1-8f91-4338-977f-503f02c53ea2",
              "operator": {
                "type": "string",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $json.methodResponse.params.param.value }}",
              "rightValue": ""
            }
          ]
        },
        "looseTypeValidation": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "3a37d19a-12d3-474b-840f-c09342eecca9",
      "name": "HandleResponse",
      "type": "n8n-nodes-base.xml",
      "position": [
        220,
        -700
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "78f90dc5-6209-4db0-b6c6-9f2324488605",
  "connections": {
    "Settings": {
      "main": [
        [
          {
            "node": "PrepareXML",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "PrepareXML": {
      "main": [
        [
          {
            "node": "PostRequest",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "PostRequest": {
      "main": [
        [
          {
            "node": "HandleResponse",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IsSuccessful": {
      "main": [
        [
          {
            "node": "Success",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Error",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ManualTrigger": {
      "main": [
        [
          {
            "node": "Settings",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HandleResponse": {
      "main": [
        [
          {
            "node": "IsSuccessful",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Workflow n8n WordPress, HTTP Request, publication : pour qui est ce workflow ?

Ce workflow s'adresse aux blogueurs, aux équipes marketing et aux développeurs souhaitant automatiser la publication de contenu sur WordPress. Il est conçu pour des utilisateurs ayant une connaissance intermédiaire des outils d'automatisation et des API.

Workflow n8n WordPress, HTTP Request, publication : problème résolu

Ce workflow résout le problème de la publication manuelle de contenu sur WordPress, qui peut être chronophage et sujet à des erreurs. En automatisant ce processus, les utilisateurs peuvent publier rapidement et efficacement, tout en minimisant les risques d'erreurs humaines. Le résultat est une gestion de contenu plus fluide et une meilleure productivité.

Workflow n8n WordPress, HTTP Request, publication : étapes du workflow

Étape 1 : Le workflow est déclenché manuellement par l'utilisateur.

  • Étape 1 : Les paramètres sont configurés dans le noeud 'Settings'.
  • Étape 2 : Le contenu à publier est préparé dans le noeud 'PrepareXML', où le code JavaScript est utilisé pour formater les données.
  • Étape 3 : Une requête HTTP est envoyée via le noeud 'PostRequest' à l'API de WordPress.
  • Étape 4 : Le noeud 'IsSuccessful' vérifie si la requête a abouti.
  • Étape 5 : En cas de succès, le workflow se termine normalement, sinon il gère les erreurs avec le noeud 'Error'.

Workflow n8n WordPress, HTTP Request, publication : guide de personnalisation

Pour personnaliser ce workflow, vous pouvez modifier les paramètres dans le noeud 'Settings', tels que l'URL de votre site WordPress et les données à publier. Dans le noeud 'PrepareXML', adaptez le code JavaScript pour ajuster le format du contenu selon vos besoins. Vous pouvez également intégrer d'autres outils ou services en ajoutant des noeuds supplémentaires dans le workflow. Assurez-vous de sécuriser vos informations d'identification API et de surveiller le flux pour détecter d'éventuelles erreurs.