WordPress-Beitragdaten in Google Sheets exportieren (basierend auf WP Rest API)

Fortgeschritten

Dies ist ein Market Research-Bereich Automatisierungsworkflow mit 15 Nodes. Hauptsächlich werden Set, Code, Form, Merge, FormTrigger und andere Nodes verwendet. WordPress-Beiträge mit Kategorien und Tags für eine SEO-Prüfung in Google Sheets exportieren

Voraussetzungen
  • Möglicherweise sind Ziel-API-Anmeldedaten erforderlich
  • Google Sheets API-Anmeldedaten
Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
  "id": "XnO085uXrhMERPvb",
  "meta": {
    "instanceId": "2295c029f4cb86c8f849f9c87dade323734dc279619eb9e2704f8473c381e4d1",
    "templateCredsSetupCompleted": true
  },
  "name": "WordPress post data export to Google Sheets (based on WP Rest API)",
  "tags": [],
  "nodes": [
    {
      "id": "bfc25242-766f-4b7d-ab23-a0829de1fe83",
      "name": "Bei Formularübermittlung",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -1120,
        -320
      ],
      "webhookId": "57b1b81e-feae-464e-9459-04b0e3efcaa1",
      "parameters": {
        "options": {},
        "formTitle": "WP SEO Audit",
        "formFields": {
          "values": [
            {
              "fieldLabel": "URL",
              "placeholder": "http://yourdomain.com",
              "requiredField": true
            },
            {
              "fieldType": "number",
              "fieldLabel": "Post limit",
              "placeholder": "Default =10"
            }
          ]
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "3a5f6f97-c79a-4fed-b32a-fe7695e569f1",
      "name": "Beiträge abrufen",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueErrorOutput",
      "position": [
        -400,
        -128
      ],
      "parameters": {
        "url": "={{ $json.URL }}/wp-json/wp/v2/posts?per_page={{ $json['Post limit'] }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "2201ba9e-40b8-4bcc-988c-e8dce2578dda",
      "name": "Kategorien abrufen",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueErrorOutput",
      "position": [
        -400,
        -320
      ],
      "parameters": {
        "url": "={{ $('On form submission').item.json.URL }}/wp-json/wp/v2/categories?per_page={{ $json.per_page }}",
        "options": {},
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {}
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "f6c0f099-2c27-45df-91b3-0fd1ea15d165",
      "name": "Tags abrufen",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueErrorOutput",
      "position": [
        -400,
        -512
      ],
      "parameters": {
        "url": "={{ $('On form submission').item.json.URL }}/wp-json/wp/v2/tags?per_page={{ $json.per_page }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "6a924b56-3613-4b7f-a7c8-819bbe38387b",
      "name": "Zusammenführen",
      "type": "n8n-nodes-base.merge",
      "position": [
        16,
        -352
      ],
      "parameters": {
        "numberInputs": 3
      },
      "notesInFlow": false,
      "typeVersion": 3.2
    },
    {
      "id": "bc6731ac-f1aa-4594-a1a6-98275d976ea3",
      "name": "WP API Fehler",
      "type": "n8n-nodes-base.form",
      "position": [
        -48,
        -928
      ],
      "webhookId": "ee9fe2bd-db09-469a-b3b1-cd335e4e6daf",
      "parameters": {
        "options": {},
        "operation": "completion",
        "completionTitle": "WordPress API Error",
        "completionMessage": "Please check if your WP-Api is enabled"
      },
      "typeVersion": 2.3
    },
    {
      "id": "46d785e4-fc5f-49ba-8aa6-ee6436621131",
      "name": "Tags- und Kategoriennamen Beiträgen zuweisen",
      "type": "n8n-nodes-base.code",
      "position": [
        224,
        -336
      ],
      "parameters": {
        "jsCode": "const tagItems = $items('Get Tags');         // [{ json: { id, name, ... }}, ...]\nconst categoryItems = $items('Get Categories'); // [{ json: { id, name, ... }}, ...]\nconst postItems = $items('Get Posts');       // [{ json: { categories: [ids], tags: [ids], ... }}, ...]\n\n// Build lookup maps\nconst tagsById = Object.fromEntries(\n  tagItems\n    .filter(i => i?.json?.id != null && i?.json?.name != null)\n    .map(i => [String(i.json.id), i.json.name])\n);\n\nconst categoriesById = Object.fromEntries(\n  categoryItems\n    .filter(i => i?.json?.id != null && i?.json?.name != null)\n    .map(i => [String(i.json.id), i.json.name])\n);\n\n// Helper: normalize a field that might be number | string | array into an array of strings\nconst toIdArray = (val) => {\n  if (val == null) return [];\n  if (Array.isArray(val)) return val.map(v => String(v));\n  return [String(val)];\n};\n\n// Enrich posts with names instead of IDs\nconst out = postItems.map(item => {\n  const post = item.json;\n\n  const categoryIds = toIdArray(post.categories);\n  const tagIds = toIdArray(post.tags);\n\n  const categoryNames = categoryIds\n    .map(id => categoriesById[id])\n    .filter(Boolean);\n\n  const tagNames = tagIds\n    .map(id => tagsById[id])\n    .filter(Boolean);\n\n  return {\n    json: {\n      ...post,\n      categoryNames,\n      tagNames,\n    },\n    // keep binary if present\n    binary: item.binary,\n  };\n});\n\nreturn out;"
      },
      "typeVersion": 2
    },
    {
      "id": "989f3e60-1a1b-454c-b5f8-cdd27bf5c379",
      "name": "Beiträge mit Tags, Kategorien zu Google Sheet hinzufügen",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        480,
        -336
      ],
      "parameters": {
        "columns": {
          "value": {
            "URL": "={{ $json.link }}",
            "Tags": "={{ $json.tagNames }}",
            "Title": "={{ $json.title.rendered }}",
            "Categories": "={{ $json.categoryNames }}"
          },
          "schema": [
            {
              "id": "URL",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Title",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Categories",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Categories",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Tags",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Tags",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1nZ3WHn_QedbuNYlFVfPildBZETNYYJFT0yYFIgJy2Mg/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1nZ3WHn_QedbuNYlFVfPildBZETNYYJFT0yYFIgJy2Mg",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1nZ3WHn_QedbuNYlFVfPildBZETNYYJFT0yYFIgJy2Mg/edit?usp=drivesdk",
          "cachedResultName": "[WP]"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "sgj6aGeryqEVmS3h",
          "name": "GSheets - Piotr.Sikora.Ck@gmail.com"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "88750e8c-ad3c-4f40-b3f5-83618faa5de4",
      "name": "Haftnotiz",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        400,
        -640
      ],
      "parameters": {
        "color": 4,
        "height": 496,
        "content": "## Add posts, with tags, categories to Google Sheet\n\nRemember o create **Googe Sheet** with filds:\n- **URL**\n- **Title**\n- **Categories**\n- **Tags**"
      },
      "typeVersion": 1
    },
    {
      "id": "ed1593aa-3c25-42d4-a8cc-020843039197",
      "name": "Haftnotiz1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -112,
        -1072
      ],
      "parameters": {
        "color": 3,
        "height": 304,
        "content": "## WP API Errror\n\nAPI is not avalable"
      },
      "typeVersion": 1
    },
    {
      "id": "f23af13c-7b4d-46b4-af31-f33726fd8356",
      "name": "Haftnotiz2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -480,
        -928
      ],
      "parameters": {
        "color": 5,
        "width": 256,
        "height": 960,
        "content": "## Fetch API data\n\nFetch the following resources:\n- **Posts**\n- **Categories**\n- **Tags**\n\n\nPlease note that the `per_page` parameter is statically assigned for the posts and categories endpoints, with its value set to 100.\n\nIf you require a different number of results, adjust the parameter in the appropriate nodes accordingly."
      },
      "typeVersion": 1
    },
    {
      "id": "06d3d9a1-40bc-43e3-82a4-8bf08e640a9a",
      "name": "Haftnotiz3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        144,
        -640
      ],
      "parameters": {
        "color": 6,
        "height": 496,
        "content": "## Append categories and tags names\n\nWhat this does:\n- Reads Get Tags, Get Categories, and Get Posts.\n- Builds fast lookup maps.\n- Appends `categoryNames` and `tagNames` directly into each post.\n- Returns the modified posts ready for next steps."
      },
      "typeVersion": 1
    },
    {
      "id": "c51ef4bd-2234-486b-b0f1-2d40f0d00e00",
      "name": "Formular",
      "type": "n8n-nodes-base.form",
      "position": [
        688,
        -336
      ],
      "webhookId": "32930177-d74b-4ab5-98b6-7726b70811f5",
      "parameters": {
        "options": {},
        "operation": "completion",
        "completionTitle": "List created",
        "completionMessage": "Please check linked document to see details"
      },
      "typeVersion": 2.3
    },
    {
      "id": "b5e7141e-b922-496f-afd7-1c75a29dc408",
      "name": "Haftnotiz4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -848,
        -656
      ],
      "parameters": {
        "color": 7,
        "height": 368,
        "content": "## Config per_page\n\nConfigure `per_page` parametter."
      },
      "typeVersion": 1
    },
    {
      "id": "7a062203-6a2e-4521-a98d-f1435f52ad17",
      "name": "Konfiguration",
      "type": "n8n-nodes-base.set",
      "position": [
        -784,
        -448
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "39de8718-83b1-4060-9dc9-23b1a0a20857",
              "name": "per_page",
              "type": "number",
              "value": 100
            }
          ]
        }
      },
      "typeVersion": 3.4
    }
  ],
  "active": false,
  "pinData": {
    "On form submission": [
      {
        "json": {
          "URL": "http://juttle.app",
          "formMode": "test",
          "Post limit": 1,
          "submittedAt": "2025-10-22T10:15:02.313+02:00"
        }
      }
    ]
  },
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "91e580eb-4b6f-45ea-a1fc-68998aa694db",
  "connections": {
    "6a924b56-3613-4b7f-a7c8-819bbe38387b": {
      "main": [
        [
          {
            "node": "46d785e4-fc5f-49ba-8aa6-ee6436621131",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7a062203-6a2e-4521-a98d-f1435f52ad17": {
      "main": [
        [
          {
            "node": "f6c0f099-2c27-45df-91b3-0fd1ea15d165",
            "type": "main",
            "index": 0
          },
          {
            "node": "2201ba9e-40b8-4bcc-988c-e8dce2578dda",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f6c0f099-2c27-45df-91b3-0fd1ea15d165": {
      "main": [
        [
          {
            "node": "6a924b56-3613-4b7f-a7c8-819bbe38387b",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "bc6731ac-f1aa-4594-a1a6-98275d976ea3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3a5f6f97-c79a-4fed-b32a-fe7695e569f1": {
      "main": [
        [
          {
            "node": "6a924b56-3613-4b7f-a7c8-819bbe38387b",
            "type": "main",
            "index": 2
          }
        ],
        [
          {
            "node": "bc6731ac-f1aa-4594-a1a6-98275d976ea3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2201ba9e-40b8-4bcc-988c-e8dce2578dda": {
      "main": [
        [
          {
            "node": "6a924b56-3613-4b7f-a7c8-819bbe38387b",
            "type": "main",
            "index": 1
          }
        ],
        [
          {
            "node": "bc6731ac-f1aa-4594-a1a6-98275d976ea3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "bfc25242-766f-4b7d-ab23-a0829de1fe83": {
      "main": [
        [
          {
            "node": "3a5f6f97-c79a-4fed-b32a-fe7695e569f1",
            "type": "main",
            "index": 0
          },
          {
            "node": "7a062203-6a2e-4521-a98d-f1435f52ad17",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "46d785e4-fc5f-49ba-8aa6-ee6436621131": {
      "main": [
        [
          {
            "node": "989f3e60-1a1b-454c-b5f8-cdd27bf5c379",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "989f3e60-1a1b-454c-b5f8-cdd27bf5c379": {
      "main": [
        [
          {
            "node": "c51ef4bd-2234-486b-b0f1-2d40f0d00e00",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Häufig gestellte Fragen

Wie verwende ich diesen Workflow?

Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.

Für welche Szenarien ist dieser Workflow geeignet?

Fortgeschritten - Marktforschung

Ist es kostenpflichtig?

Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.

Workflow-Informationen
Schwierigkeitsgrad
Fortgeschritten
Anzahl der Nodes15
Kategorie1
Node-Typen8
Schwierigkeitsbeschreibung

Für erfahrene Benutzer, mittelkomplexe Workflows mit 6-15 Nodes

Externe Links
Auf n8n.io ansehen

Diesen Workflow teilen

Kategorien

Kategorien: 34