{"id":55209,"date":"2022-10-24T09:16:39","date_gmt":"2022-10-24T08:16:39","guid":{"rendered":"https:\/\/kinqsta.com\/de\/?p=55209&#038;preview=true&#038;preview_id=55209"},"modified":"2023-08-23T10:50:43","modified_gmt":"2023-08-23T09:50:43","slug":"python-wordpress","status":"publish","type":"post","link":"https:\/\/kinqsta.com\/de\/blog\/python-wordpress\/","title":{"rendered":"Poliere deine Python-Kenntnisse, indem du deine App mit WordPress verbindest"},"content":{"rendered":"<p>WordPress hat sich zum meistgenutzten Content Management System (CMS) entwickelt, was nicht zuletzt an seiner Programmierschnittstelle (API) liegt. Die <a href=\"https:\/\/kinqsta.com\/de\/blog\/wordpress-rest-api\/\" target=\"_blank\" rel=\"noopener noreferrer\">WordPress REST API<\/a> erm\u00f6glicht es WordPress, mit anderen Anwendungen zu kommunizieren, die in verschiedenen Sprachen geschrieben wurden &#8211; darunter auch Python.<\/p>\n<p><a href=\"https:\/\/kinqsta.com\/de\/blog\/python-tutorials\/#what-is-python\" target=\"_blank\" rel=\"noopener noreferrer\">Python<\/a> ist eine erweiterbare Programmiersprache mit vielf\u00e4ltigen Einsatzm\u00f6glichkeiten und einer f\u00fcr Menschen lesbaren Syntax, was sie zu einem leistungsstarken Werkzeug f\u00fcr die Fernverwaltung von WordPress-Inhalten macht.<\/p>\n<p>Hier sind einige Anwendungsf\u00e4lle f\u00fcr die WordPress REST API und wie du Python zur Unterst\u00fctzung deiner Anwendungen nutzen kannst:<\/p>\n<ul>\n<li>Verwende vordefinierte Vorlagen, damit deine App Rohdaten schnell in formatierte Beitr\u00e4ge mit Erkl\u00e4rungen umwandeln kann.<\/li>\n<li>Baue eine Back-Office-Anwendung auf Basis von Django und Python, die deinen Kunden zeitlich begrenzte Angebote anzeigt, sobald ein objektspezifischer Rabatt oder ein Verkaufsereignis eintritt.<\/li>\n<li>Integriere Python-Skripte, die innerhalb deiner WordPress-Website laufen<\/li>\n<\/ul>\n<p>Dieses Tutorial hilft dir, eine einfache Python-Konsolenanwendung zu erstellen, die mit der WordPress REST API kommuniziert und Operationen ausf\u00fchrt. Der vollst\u00e4ndige Projektcode ist ebenfalls verf\u00fcgbar.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Installieren und Konfigurieren von WordPress<\/h2>\n<p>Als Erstes installieren und betreiben wir eine WordPress-Website lokal auf deinem Entwicklungsrechner. Das ist eine gute M\u00f6glichkeit, um mit WordPress anzufangen, denn du musst weder ein Konto anlegen noch einen Domainnamen f\u00fcr das Webhosting kaufen.<\/p>\n<p>Bevor du WordPress lokal installierst, m\u00fcssen einige Komponenten auf deinem Computer laufen, darunter der Apache-Webserver, eine lokale Datenbank und die Sprache PHP, in der WordPress geschrieben ist.<\/p>\n<p>Zum Gl\u00fcck k\u00f6nnen wir <a href=\"https:\/\/kinqsta.com\/de\/devkinsta\/\" target=\"_blank\" rel=\"noopener noreferrer\">DevKinsta<\/a> verwenden, eine kostenlose lokale WordPress-Entwicklungssuite, die f\u00fcr alle g\u00e4ngigen Betriebssysteme verf\u00fcgbar ist (du musst kein Kinsta-Kunde sein, um sie zu nutzen).<\/p>\n<p>DevKinsta ist f\u00fcr Windows, Mac und Linux erh\u00e4ltlich und installiert WordPress und alle seine Abh\u00e4ngigkeiten auf deinem lokalen Rechner.<\/p>\n<p>Bevor du DevKinsta installierst, musst du Docker lokal ausf\u00fchren. Lade also <a href=\"https:\/\/docs.docker.com\/engine\/install\/\">Docker Engine herunter und installiere es<\/a>, falls du das noch nicht getan hast.<\/p>\n<p>Nach der Installation von Docker Desktop kannst du <a href=\"https:\/\/kinqsta.com\/de\/devkinsta\/download\/\">automatisch das Paket herunterladen<\/a>, das f\u00fcr dein Betriebssystem geeignet ist.<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 826px\" class=\"wp-caption alignleft\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2022\/10\/DevKinsta-downloading-screen.png\" alt=\"Screenshot der DevKinsta Installationsseite\" width=\"826\" height=\"570\"><figcaption class=\"wp-caption-text\">DevKinsta Installationsseite<\/figcaption><\/figure><\/figure>\n<p>Wenn du das DevKinsta-Installationsprogramm ausf\u00fchrst, beginnt Docker sofort mit der Initialisierung:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 546px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2022\/10\/DevKinsta-starting-Docker-screen.png\" alt=\"DevKinsta's Startbildschirm f\u00fcr Docker\" width=\"546\" height=\"368\"><figcaption class=\"wp-caption-text\">DevKinsta startet Docker lokal<\/figcaption><\/figure><\/figure>\n<p>Als N\u00e4chstes w\u00e4hlst du <strong>Neue WordPress-Site<\/strong> aus dem Men\u00fc <strong>Neue Site erstellen<\/strong>:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 905px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2022\/10\/DevKinsta-create-new-WordPress-site-screen.png\" alt=\"DevKinsta's Bildschirm zum Erstellen einer neuen WordPress Seite\" width=\"905\" height=\"521\"><figcaption class=\"wp-caption-text\">DevKinsta&#8217;s Men\u00fc Neue Seite erstellen<\/figcaption><\/figure><\/figure>\n<p>Jetzt verlangt der DevKinsta-Installer, dass du die Anmeldedaten f\u00fcr das WordPress-Administratorkonto erstellst:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 501px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2022\/10\/DevKinsta-new-WordPress-site-creation-screen.png\" alt=\"DevKinsta's neuer Bildschirm zur Erstellung von WordPress-Seiten\" width=\"501\" height=\"463\"><figcaption class=\"wp-caption-text\">DevKinsta zeigt das Formular &#8222;Neue WordPress-Seite&#8220; an<\/figcaption><\/figure><\/figure>\n<p>Einmal installiert, ist DevKinsta eine eigenst\u00e4ndige Anwendung. Jetzt kannst du sowohl auf die WordPress-Site (\u00fcber die Schaltfl\u00e4che <strong>Site \u00f6ffnen<\/strong>) als auch auf das WordPress-Admin-Dashboard (Schaltfl\u00e4che <strong>WP Admin<\/strong>) zugreifen.<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 969px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2022\/10\/DevKinsta-WordPress-site-info-screen.png\" alt=\"DevKinsta's WordPress Website Info Bildschirm\" width=\"969\" height=\"550\"><figcaption class=\"wp-caption-text\">DevKinsta&#8217;s Site Info Panel<\/figcaption><\/figure><\/figure>\n<p>Als n\u00e4chstes musst du <a href=\"https:\/\/kinqsta.com\/de\/blog\/wie-ssl-funktioniert\/\" target=\"_blank\" rel=\"noopener noreferrer\">SSL und HTTPS<\/a> f\u00fcr deine Website aktivieren. Das verbessert die Sicherheit deiner Website durch ein SSL-Zertifikat.<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 969px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2022\/10\/DevKinsta-SSL-and-HTTPS-option-screen.png\" alt=\"Aktivieren der SSL- und HTTPS-Option von DevKinsta\" width=\"969\" height=\"550\"><figcaption class=\"wp-caption-text\">DevKinsta&#8217;s &#8222;SSL and HTTPS&#8220; Option<\/figcaption><\/figure><\/figure>\n<p>Gehe nun zur DevKinsta-App und klicke auf die Schaltfl\u00e4che &#8222;<strong>Website \u00f6ffnen<\/strong> &#8222;. In einem neuen Browser-Tab wird die Startseite deiner WordPress-Seite angezeigt:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 827px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2022\/10\/DevKinsta-new-local-site-Hello-World.png\" alt=\"Die Startseite deiner lokalen WordPress-Website\" width=\"827\" height=\"612\"><figcaption class=\"wp-caption-text\">WordPress Startseite<\/figcaption><\/figure><\/figure>\n<p>Dies ist dein WordPress-Blog, in dem du mit dem Schreiben beginnen kannst. Aber damit Python auf die WordPress REST API zugreifen und sie nutzen kann, m\u00fcssen wir zuerst den WordPress Admin konfigurieren.<\/p>\n<p>Klicke in der DevKinsta-App auf die Schaltfl\u00e4che <strong>WP Admin<\/strong> und gib dann deinen Benutzer und dein Passwort ein, um auf das <strong>WordPress-Dashboard<\/strong> zuzugreifen:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 357px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2022\/10\/WordPress-admin-dashboard-login-screen.png\" alt=\"Anmeldebildschirm f\u00fcr das WordPress Admin-Dashboard\" width=\"357\" height=\"385\"><figcaption class=\"wp-caption-text\">WordPress-Anmeldeformular<\/figcaption><\/figure><\/figure>\n<p>Sobald du eingeloggt bist, siehst du das <strong>WordPress Dashboard<\/strong>:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 989px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2022\/10\/welcome-to-WordPress-admin-screen.png\" alt=\"Willkommen im WordPress-Administrationsbereich\" width=\"989\" height=\"612\"><figcaption class=\"wp-caption-text\">WordPress Dashboard Seite.<\/figcaption><\/figure><\/figure>\n<p>WordPress verwendet die Cookie-Authentifizierung als Standardmethode. Wenn du es aber \u00fcber die REST-API steuern willst, musst du dich mit einer Technik authentifizieren, die den Zugriff auf die WordPress REST-API erm\u00f6glicht.<\/p>\n<p>Daf\u00fcr verwendest du <a href=\"https:\/\/make.wordpress.org\/core\/2020\/11\/05\/application-passwords-integration-guide\/\" target=\"_blank\" rel=\"noopener noreferrer\">Anwendungskennw\u00f6rter<\/a>. Das sind 24 Zeichen lange Zeichenketten, die WordPress generiert und mit einem Benutzerprofil verkn\u00fcpft, das die Berechtigung hat, deine Website zu verwalten.<\/p>\n<p>Um Anwendungskennw\u00f6rter zu verwenden, klicke im Dashboard auf das Men\u00fc <strong>Plugin<\/strong> und suche dann nach dem gleichnamigen Plugin. Installiere und aktiviere dann das Application Passwords Plugin:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 752px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2022\/10\/WordPress-add-plugins-Application-Passwords.png\" alt=\"Installiere und aktiviere das WordPress Application Passwords Plugin\" width=\"752\" height=\"445\"><figcaption class=\"wp-caption-text\">Application Passwords Plugin f\u00fcr WordPress<\/figcaption><\/figure><\/figure>\n<p>Um mit der Erstellung deines Bewerbungspassworts zu beginnen, \u00f6ffne zun\u00e4chst das Men\u00fc <strong>Benutzer<\/strong> und klicke auf <strong>Alle Benutzer<\/strong>:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 272px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2022\/10\/expanded-Users-WordPress-menu.png\" alt=\"Erweitertes Benutzermen\u00fc\" width=\"272\" height=\"205\"><figcaption class=\"wp-caption-text\">Erweitertes Benutzermen\u00fc<\/figcaption><\/figure><\/figure>\n<p>Klicke jetzt auf <strong>Bearbeiten<\/strong> unter deinem Admin-Benutzernamen:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 1015px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2022\/10\/edit-screen-WordPress-user.png\" alt=\"Klicke auf die Schaltfl\u00e4che \"Bearbeiten\" unter deinem WordPress-Benutzer im Men\u00fc Benutzer. \" width=\"1015\" height=\"471\"><figcaption class=\"wp-caption-text\">WP-Admin WordPress-Oberfl\u00e4che<\/figcaption><\/figure><\/figure>\n<p>Scrolle auf der Seite <strong>Benutzer bearbeiten<\/strong> nach unten und finde den Abschnitt <strong>Anwendungspassw\u00f6rter<\/strong>. Hier gibst du einen Namen f\u00fcr das Anwendungskennwort ein, mit dem du sp\u00e4ter deine Python-App-Anfragen authentifizieren und die REST-API nutzen wirst:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 761px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2022\/10\/Application-Passwords-plugin-dashboard.png\" alt=\"Anwendung Passw\u00f6rter Plugin Dashboard\" width=\"761\" height=\"362\"><figcaption class=\"wp-caption-text\">Seite Anwendungskennwort<\/figcaption><\/figure><\/figure>\n<p>Klicke auf <strong>Neues Anwendungskennwort hinzuf\u00fcgen<\/strong>, damit WordPress ein zuf\u00e4lliges 24-stelliges Kennwort f\u00fcr dich generieren kann:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 771px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2022\/10\/Application-Passwords-new-password-page.png\" alt=\"Das neue, vom Application Passwords Plugin generierte Passwort\" width=\"771\" height=\"110\"><figcaption class=\"wp-caption-text\">Das neue, vom Application Passwords Plugin generierte Passwort<\/figcaption><\/figure><\/figure>\n<p>Kopiere dieses Passwort und speichere es an einem sicheren Ort, um es sp\u00e4ter zu verwenden. Vergiss nicht, dass du dieses Passwort nicht mehr abrufen kannst, sobald du diese Seite geschlossen hast.<\/p>\n<p>Schlie\u00dflich musst du noch Permalinks konfigurieren. WordPress erm\u00f6glicht es dir, eine eigene URL-Struktur f\u00fcr deine Permalinks und Archive zu erstellen. \u00c4ndern wir sie so, dass ein WordPress-Beitrag mit dem Titel z. B. &#8222;Deine erste WordPress-Website&#8220; \u00fcber die intuitive URL https:\/\/your-website.local:port\/your-first-wordpress-website\/ aufgerufen werden kann. Dieser Ansatz bringt mehrere Vorteile mit sich, unter anderem eine verbesserte Benutzerfreundlichkeit und \u00c4sthetik.<\/p>\n<p>Um Permalinks zu konfigurieren, erweiterst du den Bereich <strong>Einstellungen<\/strong> und klickst auf das Men\u00fc <strong>Permalinks<\/strong>. Hier \u00e4nderst du die <strong>Allgemeinen Einstellungen<\/strong> in <strong>Postname<\/strong>:<\/p>\n<figure style=\"text-align: center\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2022\/10\/WordPress-change-Permalink-settings-post_name.png\" alt=\"\u00c4ndern der WordPress Permalink-Einstellungen\" width=\"996\" height=\"592\"><\/figure>\n<p>Die Einstellung der Permalink-Struktur mit der <strong>Postname-Struktur<\/strong> ist auch deshalb notwendig, weil wir so sp\u00e4ter in unserem Python-Code die Beitr\u00e4ge im JSON-Format abrufen k\u00f6nnen. Andernfalls wird ein JSON-Dekodierungsfehler ausgel\u00f6st.<\/p>\n<h2>Wie man WordPress von Python aus steuert<\/h2>\n<p>WordPress ist in PHP geschrieben, verf\u00fcgt aber \u00fcber eine REST-API, die es anderen Programmiersprachen, Websites und Anwendungen erm\u00f6glicht, seine Inhalte zu nutzen. Durch die Offenlegung der WordPress-Inhalte in der REST-Architektur werden diese im JSON-Format zur Verf\u00fcgung gestellt. Daher k\u00f6nnen andere Dienste mit WordPress integriert werden und CRUD-Operationen (Erstellen, Lesen, Aktualisieren und L\u00f6schen) durchf\u00fchren, ohne dass eine lokale WordPress-Installation erforderlich ist.<\/p>\n<p>Als N\u00e4chstes wirst du eine einfache Python-Anwendung erstellen, um zu sehen, wie du die WordPress REST-API nutzen kannst, um Beitr\u00e4ge zu erstellen, abzurufen, zu aktualisieren und zu l\u00f6schen.<\/p>\n<p>Erstelle ein neues Verzeichnis f\u00fcr dein neues, einfaches Python-Projekt und nenne es z. B. <code>PythonWordPress<\/code>:<\/p>\n<pre><code class=\"language-bash\">..\/PythonWordPress<\/code><\/pre>\n<p>Jetzt erstellst du eine virtuelle Umgebung f\u00fcr dein Projekt, damit es einen unabh\u00e4ngigen Satz von installierten Python-Paketen beibeh\u00e4lt, die von deinen Systemverzeichnissen isoliert sind und Versionskonflikte vermieden werden. Erstelle eine virtuelle Umgebung, indem du den Befehl <code>venv<\/code> ausf\u00fchrst:<\/p>\n<pre><code class=\"language-bash\">python3 -m venv .venv<\/code><\/pre>\n<p>F\u00fchre nun einen Befehl aus, um die virtuelle Umgebung <strong>.venv<\/strong> zu aktivieren. Dieser Befehl variiert je nach Betriebssystem:<\/p>\n<ul>\n<li>Windows <code>.venvScriptsactivate<\/code><\/li>\n<li>Mac\/Linux <code>.venv\/bin\/activate<\/code><\/li>\n<\/ul>\n<p>Als N\u00e4chstes speicherst du die Konfiguration f\u00fcr dein WordPress-Konto. Um die Konfiguration der App von deinem Python-Code zu trennen, erstelle eine <strong>.env<\/strong>-Datei in deinem Projektverzeichnis und f\u00fcge diese Umgebungsvariablen zu der Datei hinzu:<\/p>\n<pre><code class=\"language-markup\">WEBSITE_URL=\"&lt;&gt;\"\n\nAPI_USERNAME=\"&lt;&gt;\"\n\nAPI_PASSWORD=\"&lt;&gt;\"<\/code><\/pre>\n<p>Zum Gl\u00fcck ist es einfach, die oben genannten Daten aus einer Python-App auszulesen. Du kannst das Paket <strong>Python-dotenv<\/strong> installieren, damit deine Anwendung die Konfiguration aus der <strong>.env<\/strong>-Datei lesen kann:<\/p>\n<pre><code class=\"language-bash\">pip install python-dotenv<\/code><\/pre>\n<p>Installiere dann <strong>aiohttp<\/strong>, einen asynchronen HTTP-Client\/Server f\u00fcr Python:<\/p>\n<pre><code class=\"language-bash\">pip install aiohttp<\/code><\/pre>\n<p>F\u00fcge nun eine Datei namens <strong>app.py<\/strong> mit folgendem Code hinzu:<\/p>\n<pre><code class=\"language-python\">import asyncio\n\nmenu_options = {\n\n1: 'List Posts',\n\n2: 'Retrieve a Post'\n\n}\n\ndef print_menu():\n\nfor key in menu_options.keys():\n\nprint (key, '--', menu_options[key] )\n\nasync def main():\n\nwhile(True):\n\nprint_menu()\n\noption = input_number('Enter your choice: ')\n\n#Check what choice was entered and act accordingly\n\nif option == 1:\n\nprint('Listing posts...')\n\nelif option == 2:\n\nprint('Retrieving a post...')\n\nelse:\n\nprint('Invalid option. Please enter a number between 1 and 5.')\n\ndef input_number(prompt):\n\nwhile True:\n\ntry:\n\nvalue = int(input(prompt))\n\nexcept ValueError:\n\nprint('Wrong input. Please enter a number ...')\n\ncontinue\n\nif value &lt; 0:\n\nprint(\"Sorry, your response must not be negative.\")\n\nelse:\n\nbreak\n\nreturn value\n\ndef input_text(prompt):\n\nwhile True:\n\ntext = input(prompt)\n\nif len(text) == 0:\n\nprint(\"Text is required.\")\n\ncontinue\n\nelse:\n\nbreak\n\nreturn text\n\nif __name__=='__main__':\n\nasyncio.run(main())<\/code><\/pre>\n<p>Der obige Code zeigt ein Konsolenmen\u00fc an und fordert dich auf, eine Zahl einzugeben, um eine Option auszuw\u00e4hlen. Als N\u00e4chstes erweiterst du dieses Projekt und implementierst den Code, der es dir erm\u00f6glicht, alle Beitr\u00e4ge aufzulisten und einen bestimmten Beitrag anhand seiner Beitragsnummer abzurufen.<\/p>\n<h2>Beitr\u00e4ge im Code abrufen<\/h2>\n<p>Um mit der WordPress REST API zu interagieren, musst du eine neue Python-Datei erstellen. Erstelle eine Datei namens <strong>wordpress_api_helper.py<\/strong> mit folgendem Inhalt:<\/p>\n<pre><code class=\"language-python\">import aiohttp\n\nimport base64\n\nimport os\n\nimport json\n\nfrom dotenv import load_dotenv\n\nload_dotenv()\n\nuser=os.getenv(\"API_USERNAME\")\n\npassword=os.getenv(\"API_PASSWORD\")\n\nasync def get_all_posts():\n\nasync with aiohttp.ClientSession(os.getenv(\"WEBSITE_URL\")) as session:\n\nasync with session.get(\"\/wp-json\/wp\/v2\/posts\") as response:\n\nprint(\"Status:\", response.status)\n\ntext = await response.text()\n\nwp_posts = json.loads(text)\n\nsorted_wp_posts = sorted(wp_posts, key=lambda p: p['id'])\n\nprint(\"=====================================\")\n\nfor wp_post in sorted_wp_posts:\n\nprint(\"id:\", wp_post['id'])\n\nprint(\"title:\", wp_post['title']['rendered'])\n\nprint(\"=====================================\")\n\nasync def get_post(id):\n\nasync with aiohttp.ClientSession(os.getenv(\"WEBSITE_URL\")) as session:\n\nasync with session.get(f\"\/wp-json\/wp\/v2\/posts\/{id}\") as response:\n\nprint(\"Status:\", response.status)\n\ntext = await response.text()\n\nwp_post = json.loads(text)\n\nprint(\"=====================================\")\n\nprint(\"Post\")\n\nprint(\"     id:\", wp_post['id'])\n\nprint(\"     title:\", wp_post['title']['rendered'])\n\nprint(\"     content:\", wp_post['content']['rendered'])\n\nprint(\"=====================================\")<\/code><\/pre>\n<p>Beachte die Verwendung der <strong>aiohttp<\/strong>-Bibliothek oben. Moderne Sprachen bieten eine Syntax und Werkzeuge, die asynchrone Programmierung erm\u00f6glichen. Das erh\u00f6ht die Reaktionsf\u00e4higkeit der Anwendung, indem das Programm Aufgaben parallel zu Operationen wie <a href=\"https:\/\/kinqsta.com\/de\/blog\/was-ist-eine-http-anfrage\/\" target=\"_blank\" rel=\"noopener noreferrer\">Webanfragen<\/a>, Datenbankoperationen und Festplatten-E\/A ausf\u00fchren kann. Python bietet <a href=\"https:\/\/docs.python.org\/3\/library\/asyncio.html\" target=\"_blank\" rel=\"noopener noreferrer\">asyncio<\/a> als Grundlage f\u00fcr sein asynchrones Programmierframework, und die <a href=\"https:\/\/docs.aiohttp.org\/en\/stable\/\" target=\"_blank\" rel=\"noopener noreferrer\">aiohttp<\/a>-Bibliothek baut auf<strong> asyncio<\/strong> auf, um asynchronen Zugriff auf HTTP-Client\/Server-Operationen in Python zu erm\u00f6glichen.<\/p>\n<p>Die obige Funktion <code>ClientSession<\/code> wird asynchron ausgef\u00fchrt und gibt ein <code>session<\/code> Objekt zur\u00fcck, das unser Programm verwendet, um eine HTTP-GET-Operation gegen den Endpunkt <code>\/wp-json\/wp\/v2\/posts<\/code> durchzuf\u00fchren. Der einzige Unterschied zwischen einer Anfrage zum Abrufen aller Beitr\u00e4ge und einer Anfrage f\u00fcr einen bestimmten Beitrag besteht darin, dass bei letzterer Anfrage ein <code>post id<\/code> Parameter in der URL-Route \u00fcbergeben wird: <code>\/wp-json\/wp\/v2\/posts\/{id}<\/code>.<\/p>\n<p>\u00d6ffne nun die Datei <strong>app.py<\/strong> und f\u00fcge die Anweisung <code>import<\/code> hinzu:<\/p>\n<pre><code class=\"language-python\">from wordpress_api_helper import get_all_posts, get_post<\/code><\/pre>\n<p>Als n\u00e4chstes \u00e4nderst du die Funktion <code>main<\/code>, um die Funktionen <code>get_all_posts<\/code> und <code>get_post<\/code> aufzurufen:<\/p>\n<pre><code class=\"language-python\">if option == 1:\n\nprint('Listing posts...')\n\nawait get_all_posts()\n\nelif option == 2:\n\nprint('Retrieving a post...')\n\nid = input_number('Enter the post id: ')\n\nawait get_post(id)<\/code><\/pre>\n<p>Starte dann die App:<\/p>\n<pre><code class=\"language-bash\">python app.py<\/code><\/pre>\n<p>Du siehst dann das Anwendungsmen\u00fc:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 804px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2022\/10\/Python-app-WordPress-start.png\" alt=\"Starte die Python-App, die mit WordPress verbunden ist\" width=\"804\" height=\"114\"><figcaption class=\"wp-caption-text\">Python-Anwendungsmen\u00fc<\/figcaption><\/figure><\/figure>\n<p>Probiere nun Option 1 aus, um die Liste der Beitr\u00e4ge zu sehen, die deine Python-Anwendung abruft, und Option 2, um einen Beitrag auszuw\u00e4hlen:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 670px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2022\/10\/list-and-select-posts-Python-app.png\" alt=\"Probiere Option 1 aus, um die Liste der Beitr\u00e4ge zu sehen, die deine Python-App abruft, und Option 2, um einen Beitrag auszuw\u00e4hlen\" width=\"670\" height=\"624\"><figcaption class=\"wp-caption-text\">Python-App zeigt die Beitragsliste und einen einzelnen, vom Benutzer ausgew\u00e4hlten Beitrag<\/figcaption><\/figure><\/figure>\n<h2>Posts im Code erstellen<\/h2>\n<p>Um einen WordPress-Beitrag in Python zu erstellen, \u00f6ffnest du zun\u00e4chst die Datei <strong>wordpress_api_helper.py<\/strong> und f\u00fcgst die Funktion <code>create_post<\/code> hinzu:<\/p>\n<pre><code class=\"language-python\">async def create_post(title, content):\n\nasync with aiohttp.ClientSession(os.getenv(\"WEBSITE_URL\")) as session:\n\nasync with session.post(\n\nf\"\/wp-json\/wp\/v2\/posts?content={content}&title={title}&status=publish\"\n\n, auth=aiohttp.BasicAuth(user, password)) as response:\n\nprint(\"Status:\", response.status)\n\ntext = await response.text()\n\nwp_post = json.loads(text)\n\npost_id = wp_post['id']\n\nprint(f'New post created with id: {post_id}')<\/code><\/pre>\n<p>Dieser Code ruft die Funktion <code>post<\/code> im Objekt <code>session<\/code> auf und \u00fcbergibt den Parameter <code>auth<\/code> neben der URL des REST-API-Endpunkts. Das <code>auth<\/code> Objekt enth\u00e4lt nun den WordPress-Benutzer und das Passwort, das du mit Application Passwords erstellt hast. \u00d6ffne nun die Datei <strong>app.py<\/strong> und f\u00fcge Code hinzu, um <code>create_post<\/code> und das Men\u00fc zu importieren:<\/p>\n<pre><code class=\"language-python\">from wordpress_api_helper import get_all_posts, get_post, create_post\n\nmenu_options = {\n\n1: 'List Posts',\n\n2: 'Retrieve a Post',\n\n3: 'Create a Post'\n\n}<\/code><\/pre>\n<p>F\u00fcge dann eine dritte Men\u00fcoption hinzu:<\/p>\n<pre><code class=\"language-python\">elif option == 3:\n\nprint('Creating a post...')\n\ntitle = input_text('Enter the post title: ')\n\ncontent = input_text('Enter the post content: ')\n\nawait create_post(title, f\"{content}\")\n<\/code><\/pre>\n<p>Starte die App und probiere Option 3 aus, indem du einen Titel und einen Inhalt angibst, um einen neuen Beitrag in WordPress zu erstellen:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 671px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2022\/10\/create-a-WordPress-post-Python-app.png\" alt=\"Einen WordPress-Beitrag mit Python erstellen.\" width=\"671\" height=\"335\"><figcaption class=\"wp-caption-text\">Python-App zeigt neu erstellten WordPress-Beitrag an<\/figcaption><\/figure><\/figure>\n<p>W\u00e4hlst du wieder Option 1, erh\u00e4ltst du die ID und den Titel des neu erstellten Beitrags:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 672px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2022\/10\/return-id-newly-added-post.png\" alt=\"Python-App gibt den Titel und die ID des neuen Beitrags zur\u00fcck\" width=\"672\" height=\"333\"><figcaption class=\"wp-caption-text\">Python-App gibt den Titel und die ID des neuen Beitrags zur\u00fcck<\/figcaption><\/figure><\/figure>\n<p>Du kannst auch deine WordPress-Website \u00f6ffnen, um den neuen Beitrag zu sehen:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 754px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2022\/10\/Kinsta-Compute-Optimized-C2-post.png\" alt=\"Der neu erstellte Beitrag im Browser\" width=\"754\" height=\"600\"><figcaption class=\"wp-caption-text\">Der neu erstellte Beitrag im Browser<\/figcaption><\/figure><\/figure>\n<h2>Posts im Code aktualisieren<\/h2>\n<p>\u00d6ffne die Datei <strong>wordpress_api_helper.py<\/strong> und f\u00fcge die Funktion <code>update_post<\/code> hinzu:<\/p>\n<pre><code class=\"language-python\">async def update_post(id, title, content):\n\nasync with aiohttp.ClientSession(os.getenv(\"WEBSITE_URL\")) as session:\n\nasync with session.post(\n\nf\"\/wp-json\/wp\/v2\/posts\/{id}?content={content}&title={title}&status=publish\"\n\n, auth=aiohttp.BasicAuth(user, password)) as response:\n\nprint(\"Status:\", response.status)\n\ntext = await response.text()\n\nwp_post = json.loads(text)\n\npost_id = wp_post['id']\n\nprint(f'New post created with id: {post_id}')<\/code><\/pre>\n<p>\u00d6ffne dann die Datei <strong>app.py<\/strong> und f\u00fcge Code hinzu, um <code>update_post<\/code> und das Men\u00fc zu importieren:<\/p>\n<pre><code class=\"language-python\">from wordpress_api_helper import get_all_posts, get_post, create_post, update_post\n\nmenu_options = {\n\n1: 'List Posts',\n\n2: 'Retrieve a Post',\n\n3: 'Create a Post',\n\n4: 'Update a Post'\n\n}<\/code><\/pre>\n<p>F\u00fcge dann eine vierte Men\u00fcoption hinzu:<\/p>\n<pre><code class=\"language-python\">elif option == 4:\n\nprint('Updating a post...')\n\nid = input_number('Enter the post id: ')\n\ntitle = input_text('Enter the post title: ')\n\ncontent = input_text('Enter the post content: ')\n\nawait update_post(id, title, f\"{content}\")\n<\/code><\/pre>\n<p>Starte dann die App und probiere Option 4 aus, indem du eine Beitrags-ID, einen Titel und einen Inhalt angibst, um einen bestehenden Beitrag zu aktualisieren.<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 670px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2022\/10\/updating-WordPress-post-Python-app.png\" alt=\"Einen WordPress-Beitrag aktualisieren\" width=\"670\" height=\"338\"><figcaption class=\"wp-caption-text\">Python-App zeigt das aktualisierte Men\u00fc<\/figcaption><\/figure><\/figure>\n<p>Wenn du Option 2 w\u00e4hlst und die aktualisierte Beitrags-ID \u00fcbergibst, erh\u00e4ltst du die Details des neu hinzugef\u00fcgten Beitrags:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 673px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2022\/10\/return-updated-post-details.png\" alt=\"R\u00fccksendung der Details des neu aktualisierten Beitrags\" width=\"673\" height=\"318\"><figcaption class=\"wp-caption-text\">Python-App zeigt den aktualisierten Beitrag an<\/figcaption><\/figure><\/figure>\n<h2>L\u00f6schen von Beitr\u00e4gen im Code<\/h2>\n<p>Um einen Beitrag zu l\u00f6schen, kannst du die Beitrags-ID an die REST-API \u00fcbergeben.<\/p>\n<p>\u00d6ffne die Datei <strong>wordpress_api_helper.py<\/strong> und f\u00fcge die Funktion <code>delete_post<\/code> hinzu:<\/p>\n<pre><code class=\"language-python\">async def delete_post(id):\n\nasync with aiohttp.ClientSession(os.getenv(\"WEBSITE_URL\")) as session:\n\nasync with session.delete(\n\nf\"\/wp-json\/wp\/v2\/posts\/{id}\"\n\n, auth=aiohttp.BasicAuth(user, password)) as response:\n\nprint(\"Status:\", response.status)\n\ntext = await response.text()\n\nwp_post = json.loads(text)\n\npost_id = wp_post['id']\n\nprint(f'Post with id {post_id} deleted successfully.')<\/code><\/pre>\n<p>\u00d6ffne nun die Datei <strong>app.py<\/strong> und f\u00fcge Code hinzu, um <code>delete_post<\/code> und das Men\u00fc zu importieren:<\/p>\n<pre><code class=\"language-python\">from wordpress_api_helper import get_all_posts, get_post, create_post, update_post, delete_post\n\nmenu_options = {\n\n1: 'List Posts',\n\n2: 'Retrieve a Post',\n\n3: 'Create a Post',\n\n4: 'Update a Post',\n\n5: 'Delete a Post',\n\n}<\/code><\/pre>\n<p>F\u00fcge dann eine f\u00fcnfte Men\u00fcoption hinzu:<\/p>\n<pre><code class=\"language-python\">elif option == 5:\n\nprint('Deleting a post...')\n\nid = input_number('Enter the post id: ')\n\nawait delete_post(id)<\/code><\/pre>\n<p>Starte nun die App und probiere Option 5 aus, indem du eine ID angibst, um den bestehenden Beitrag in WordPress zu l\u00f6schen:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 651px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2022\/10\/deleting-WordPress-Post-Python-app.png\" alt=\"L\u00f6schen eines WordPress-Posts mit der Python-App\" width=\"651\" height=\"120\"><figcaption class=\"wp-caption-text\">Python-App zeigt die L\u00f6schung des ausgew\u00e4hlten Beitrags an<\/figcaption><\/figure><\/figure>\n<p>Hinweis: Der gel\u00f6schte Beitrag kann immer noch angezeigt werden, wenn du die Option <strong>Beitr\u00e4ge auflisten<\/strong> ausf\u00fchrst:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 671px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2022\/10\/Python-app-listing-posts.png\" alt=\"Python-App listet Beitr\u00e4ge auf\" width=\"671\" height=\"288\"><figcaption class=\"wp-caption-text\">Python-App zeigt die urspr\u00fcngliche Beitragsliste<\/figcaption><\/figure><\/figure>\n<p>Um zu best\u00e4tigen, dass du den Beitrag gel\u00f6scht hast, warte ein paar Sekunden und versuche die Option <strong>Beitr\u00e4ge auflisten<\/strong> erneut. Und das war&#8217;s!<\/p>\n<h2>Zusammenfassung<\/h2>\n<p>Dank der WordPress REST API und den HTTP-Client-Bibliotheken von Python k\u00f6nnen Python-Anwendungen und WordPress miteinander kommunizieren. Der Vorteil der REST-API ist, dass du WordPress von einer Python-App aus bedienen kannst. Die m\u00e4chtige Sprache Python erm\u00f6glicht die automatische Erstellung von Inhalten, die deiner gew\u00fcnschten Struktur und H\u00e4ufigkeit folgen.<\/p>\n<p>DevKinsta macht die Erstellung und Entwicklung einer lokalen WordPress-Website schnell und einfach. DevKinsta bietet eine lokale Umgebung f\u00fcr die Entwicklung von WordPress-Themes und -Plugins und ein vereinfachtes Bereitstellungsmodell dank des Docker-basierten, in sich geschlossenen Installationsmodells.<\/p>\n<p>Welche Erfahrungen hast du bei der Arbeit mit Python und WordPress gemacht?<\/p>\n<p><em>Wenn du diese Erfahrungen erweitern m\u00f6chtest, kannst du <a href=\"https:\/\/kinqsta.com\/de\/blog\/wordpress-rest-api\/\" target=\"_blank\" rel=\"noopener noreferrer\">The Complete Guide to WordPress REST API Basics<\/a><\/em> lesen, um weitere M\u00f6glichkeiten zu erkunden.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WordPress hat sich zum meistgenutzten Content Management System (CMS) entwickelt, was nicht zuletzt an seiner Programmierschnittstelle (API) liegt. Die WordPress REST API erm\u00f6glicht es WordPress, mit &#8230;<\/p>\n","protected":false},"author":117,"featured_media":55210,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[464,28],"topic":[936,974,990,999],"class_list":["post-55209","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-python","tag-webdev","topic-devkinsta","topic-python","topic-webentwicklung-sprachen","topic-wordpress-entwicklung"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Poliere deine Python-Kenntnisse, indem du deine App mit WordPress verbindest<\/title>\n<meta name=\"description\" content=\"Lerne, wie Python-Anwendungen und WordPress zusammenarbeiten und miteinander kommunizieren k\u00f6nnen, indem du die REST-API von WordPress und die HTTP-Client-Bibliotheken von Python nutzt.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinqsta.com\/de\/blog\/python-wordpress\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Poliere deine Python-Kenntnisse, indem du deine App mit WordPress verbindest\" \/>\n<meta property=\"og:description\" content=\"Lerne, wie Python-Anwendungen und WordPress zusammenarbeiten und miteinander kommunizieren k\u00f6nnen, indem du die REST-API von WordPress und die HTTP-Client-Bibliotheken von Python nutzt.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinqsta.com\/de\/blog\/python-wordpress\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-10-24T08:16:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-23T09:50:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2022\/10\/python-wordpress.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Salman Ravoof\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Lerne, wie Python-Anwendungen und WordPress zusammenarbeiten und miteinander kommunizieren k\u00f6nnen, indem du die REST-API von WordPress und die HTTP-Client-Bibliotheken von Python nutzt.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2022\/10\/python-wordpress.png\" \/>\n<meta name=\"twitter:creator\" content=\"@salmanravoof\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_DE\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Salman Ravoof\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"16\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinqsta.com\/de\/blog\/python-wordpress\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinqsta.com\/de\/blog\/python-wordpress\/\"},\"author\":{\"name\":\"Salman Ravoof\",\"@id\":\"https:\/\/kinqsta.com\/de\/#\/schema\/person\/9cafd2eedd617e640eeea4cf3a5fd987\"},\"headline\":\"Poliere deine Python-Kenntnisse, indem du deine App mit WordPress verbindest\",\"datePublished\":\"2022-10-24T08:16:39+00:00\",\"dateModified\":\"2023-08-23T09:50:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinqsta.com\/de\/blog\/python-wordpress\/\"},\"wordCount\":2114,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinqsta.com\/de\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinqsta.com\/de\/blog\/python-wordpress\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2022\/10\/python-wordpress.png\",\"keywords\":[\"Python\",\"webdev\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinqsta.com\/de\/blog\/python-wordpress\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinqsta.com\/de\/blog\/python-wordpress\/\",\"url\":\"https:\/\/kinqsta.com\/de\/blog\/python-wordpress\/\",\"name\":\"Poliere deine Python-Kenntnisse, indem du deine App mit WordPress verbindest\",\"isPartOf\":{\"@id\":\"https:\/\/kinqsta.com\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinqsta.com\/de\/blog\/python-wordpress\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinqsta.com\/de\/blog\/python-wordpress\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2022\/10\/python-wordpress.png\",\"datePublished\":\"2022-10-24T08:16:39+00:00\",\"dateModified\":\"2023-08-23T09:50:43+00:00\",\"description\":\"Lerne, wie Python-Anwendungen und WordPress zusammenarbeiten und miteinander kommunizieren k\u00f6nnen, indem du die REST-API von WordPress und die HTTP-Client-Bibliotheken von Python nutzt.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinqsta.com\/de\/blog\/python-wordpress\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinqsta.com\/de\/blog\/python-wordpress\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinqsta.com\/de\/blog\/python-wordpress\/#primaryimage\",\"url\":\"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2022\/10\/python-wordpress.png\",\"contentUrl\":\"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2022\/10\/python-wordpress.png\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinqsta.com\/de\/blog\/python-wordpress\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinqsta.com\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WordPress Entwicklung\",\"item\":\"https:\/\/kinqsta.com\/de\/thema\/wordpress-entwicklung\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Poliere deine Python-Kenntnisse, indem du deine App mit WordPress verbindest\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinqsta.com\/de\/#website\",\"url\":\"https:\/\/kinqsta.com\/de\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen\",\"publisher\":{\"@id\":\"https:\/\/kinqsta.com\/de\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinqsta.com\/de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinqsta.com\/de\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinqsta.com\/de\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinqsta.com\/de\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinqsta.com\/de\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\",\"https:\/\/x.com\/Kinsta_DE\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinqsta.com\/de\/#\/schema\/person\/9cafd2eedd617e640eeea4cf3a5fd987\",\"name\":\"Salman Ravoof\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinqsta.com\/de\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0c5885f75cb78473fb7408e5e49ad190?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0c5885f75cb78473fb7408e5e49ad190?s=96&d=mm&r=g\",\"caption\":\"Salman Ravoof\"},\"description\":\"Salman Ravoof is a self-taught web developer, writer, creator, and a huge admirer of Free and Open Source Software (FOSS). Besides tech, he's excited by science, philosophy, photography, arts, cats, and food. Learn more about him on his website, and connect with Salman on Twitter.\",\"sameAs\":[\"https:\/\/salmanravoof.com\",\"https:\/\/www.linkedin.com\/in\/salman-ravoof-5a749133\/\",\"https:\/\/x.com\/salmanravoof\"],\"url\":\"https:\/\/kinqsta.com\/de\/blog\/author\/salmanravoof\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Poliere deine Python-Kenntnisse, indem du deine App mit WordPress verbindest","description":"Lerne, wie Python-Anwendungen und WordPress zusammenarbeiten und miteinander kommunizieren k\u00f6nnen, indem du die REST-API von WordPress und die HTTP-Client-Bibliotheken von Python nutzt.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinqsta.com\/de\/blog\/python-wordpress\/","og_locale":"de_DE","og_type":"article","og_title":"Poliere deine Python-Kenntnisse, indem du deine App mit WordPress verbindest","og_description":"Lerne, wie Python-Anwendungen und WordPress zusammenarbeiten und miteinander kommunizieren k\u00f6nnen, indem du die REST-API von WordPress und die HTTP-Client-Bibliotheken von Python nutzt.","og_url":"https:\/\/kinqsta.com\/de\/blog\/python-wordpress\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","article_published_time":"2022-10-24T08:16:39+00:00","article_modified_time":"2023-08-23T09:50:43+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2022\/10\/python-wordpress.png","type":"image\/png"}],"author":"Salman Ravoof","twitter_card":"summary_large_image","twitter_description":"Lerne, wie Python-Anwendungen und WordPress zusammenarbeiten und miteinander kommunizieren k\u00f6nnen, indem du die REST-API von WordPress und die HTTP-Client-Bibliotheken von Python nutzt.","twitter_image":"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2022\/10\/python-wordpress.png","twitter_creator":"@salmanravoof","twitter_site":"@Kinsta_DE","twitter_misc":{"Verfasst von":"Salman Ravoof","Gesch\u00e4tzte Lesezeit":"16\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinqsta.com\/de\/blog\/python-wordpress\/#article","isPartOf":{"@id":"https:\/\/kinqsta.com\/de\/blog\/python-wordpress\/"},"author":{"name":"Salman Ravoof","@id":"https:\/\/kinqsta.com\/de\/#\/schema\/person\/9cafd2eedd617e640eeea4cf3a5fd987"},"headline":"Poliere deine Python-Kenntnisse, indem du deine App mit WordPress verbindest","datePublished":"2022-10-24T08:16:39+00:00","dateModified":"2023-08-23T09:50:43+00:00","mainEntityOfPage":{"@id":"https:\/\/kinqsta.com\/de\/blog\/python-wordpress\/"},"wordCount":2114,"commentCount":0,"publisher":{"@id":"https:\/\/kinqsta.com\/de\/#organization"},"image":{"@id":"https:\/\/kinqsta.com\/de\/blog\/python-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2022\/10\/python-wordpress.png","keywords":["Python","webdev"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinqsta.com\/de\/blog\/python-wordpress\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinqsta.com\/de\/blog\/python-wordpress\/","url":"https:\/\/kinqsta.com\/de\/blog\/python-wordpress\/","name":"Poliere deine Python-Kenntnisse, indem du deine App mit WordPress verbindest","isPartOf":{"@id":"https:\/\/kinqsta.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinqsta.com\/de\/blog\/python-wordpress\/#primaryimage"},"image":{"@id":"https:\/\/kinqsta.com\/de\/blog\/python-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2022\/10\/python-wordpress.png","datePublished":"2022-10-24T08:16:39+00:00","dateModified":"2023-08-23T09:50:43+00:00","description":"Lerne, wie Python-Anwendungen und WordPress zusammenarbeiten und miteinander kommunizieren k\u00f6nnen, indem du die REST-API von WordPress und die HTTP-Client-Bibliotheken von Python nutzt.","breadcrumb":{"@id":"https:\/\/kinqsta.com\/de\/blog\/python-wordpress\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinqsta.com\/de\/blog\/python-wordpress\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinqsta.com\/de\/blog\/python-wordpress\/#primaryimage","url":"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2022\/10\/python-wordpress.png","contentUrl":"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2022\/10\/python-wordpress.png","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinqsta.com\/de\/blog\/python-wordpress\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinqsta.com\/de\/"},{"@type":"ListItem","position":2,"name":"WordPress Entwicklung","item":"https:\/\/kinqsta.com\/de\/thema\/wordpress-entwicklung\/"},{"@type":"ListItem","position":3,"name":"Poliere deine Python-Kenntnisse, indem du deine App mit WordPress verbindest"}]},{"@type":"WebSite","@id":"https:\/\/kinqsta.com\/de\/#website","url":"https:\/\/kinqsta.com\/de\/","name":"Kinsta\u00ae","description":"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen","publisher":{"@id":"https:\/\/kinqsta.com\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinqsta.com\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/kinqsta.com\/de\/#organization","name":"Kinsta","url":"https:\/\/kinqsta.com\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinqsta.com\/de\/#\/schema\/logo\/image\/","url":"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinqsta.com\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","https:\/\/x.com\/Kinsta_DE","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinqsta.com\/de\/#\/schema\/person\/9cafd2eedd617e640eeea4cf3a5fd987","name":"Salman Ravoof","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinqsta.com\/de\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0c5885f75cb78473fb7408e5e49ad190?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0c5885f75cb78473fb7408e5e49ad190?s=96&d=mm&r=g","caption":"Salman Ravoof"},"description":"Salman Ravoof is a self-taught web developer, writer, creator, and a huge admirer of Free and Open Source Software (FOSS). Besides tech, he's excited by science, philosophy, photography, arts, cats, and food. Learn more about him on his website, and connect with Salman on Twitter.","sameAs":["https:\/\/salmanravoof.com","https:\/\/www.linkedin.com\/in\/salman-ravoof-5a749133\/","https:\/\/x.com\/salmanravoof"],"url":"https:\/\/kinqsta.com\/de\/blog\/author\/salmanravoof\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinqsta.com\/de\/wp-json\/wp\/v2\/posts\/55209","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinqsta.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinqsta.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinqsta.com\/de\/wp-json\/wp\/v2\/users\/117"}],"replies":[{"embeddable":true,"href":"https:\/\/kinqsta.com\/de\/wp-json\/wp\/v2\/comments?post=55209"}],"version-history":[{"count":11,"href":"https:\/\/kinqsta.com\/de\/wp-json\/wp\/v2\/posts\/55209\/revisions"}],"predecessor-version":[{"id":55688,"href":"https:\/\/kinqsta.com\/de\/wp-json\/wp\/v2\/posts\/55209\/revisions\/55688"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinqsta.com\/de\/wp-json\/kinsta\/v1\/posts\/55209\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinqsta.com\/de\/wp-json\/kinsta\/v1\/posts\/55209\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinqsta.com\/de\/wp-json\/kinsta\/v1\/posts\/55209\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinqsta.com\/de\/wp-json\/kinsta\/v1\/posts\/55209\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinqsta.com\/de\/wp-json\/kinsta\/v1\/posts\/55209\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinqsta.com\/de\/wp-json\/kinsta\/v1\/posts\/55209\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinqsta.com\/de\/wp-json\/kinsta\/v1\/posts\/55209\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinqsta.com\/de\/wp-json\/kinsta\/v1\/posts\/55209\/translations\/es"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinqsta.com\/de\/wp-json\/kinsta\/v1\/posts\/55209\/translations\/se"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinqsta.com\/de\/wp-json\/kinsta\/v1\/posts\/55209\/translations\/dk"},{"href":"https:\/\/kinqsta.com\/de\/wp-json\/kinsta\/v1\/posts\/55209\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinqsta.com\/de\/wp-json\/wp\/v2\/media\/55210"}],"wp:attachment":[{"href":"https:\/\/kinqsta.com\/de\/wp-json\/wp\/v2\/media?parent=55209"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinqsta.com\/de\/wp-json\/wp\/v2\/tags?post=55209"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinqsta.com\/de\/wp-json\/wp\/v2\/topic?post=55209"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}