{"id":46509,"date":"2022-10-24T08:18:55","date_gmt":"2022-10-24T08:18:55","guid":{"rendered":"https:\/\/kinsta.com\/se\/?p=46509&#038;preview=true&#038;preview_id=46509"},"modified":"2023-09-21T10:00:11","modified_gmt":"2023-09-21T10:00:11","slug":"python-wordpress","status":"publish","type":"post","link":"https:\/\/kinsta.com\/se\/blog\/python-wordpress\/","title":{"rendered":"Polera dina Python-knep genom att ansluta din app till WordPress"},"content":{"rendered":"<p>WordPress har blivit det mest anv\u00e4nda systemet f\u00f6r inneh\u00e5llshantering (CMS), vilket till stor del beror p\u00e5 dess gr\u00e4nssnitt f\u00f6r till\u00e4mpningsprogrammering (API). <a href=\"https:\/\/kinsta.com\/se\/blog\/wordpress-rest-api\/\" target=\"_blank\" rel=\"noopener noreferrer\">WordPress REST API<\/a> g\u00f6r det m\u00f6jligt f\u00f6r WordPress att &#8221;prata&#8221; med andra applikationer som \u00e4r skrivna i olika spr\u00e5k &#8211; inklusive Python.<\/p>\n<p><a href=\"https:\/\/kinsta.com\/se\/blog\/python-guider\/#what-is-python\" target=\"_blank\" rel=\"noopener noreferrer\">Python<\/a> \u00e4r ett utbyggbart programmeringsspr\u00e5k med olika anv\u00e4ndningsomr\u00e5den och en syntax som \u00e4r l\u00e4ttl\u00e4st f\u00f6r m\u00e4nniskor, vilket g\u00f6r det till ett kraftfullt verktyg f\u00f6r fj\u00e4rrhantering av WordPress-inneh\u00e5ll.<\/p>\n<p>H\u00e4r \u00e4r n\u00e5gra WordPress REST API-anv\u00e4ndningsomr\u00e5den f\u00f6r dina appar och en beskrivning om hur du kan anv\u00e4nda Python f\u00f6r att st\u00f6dja dem:<\/p>\n<ul>\n<li>Anv\u00e4nd f\u00f6rdefinierade mallar s\u00e5 att din app snabbt kan omvandla r\u00e5data till formaterade inl\u00e4gg med f\u00f6rklaringar.<\/li>\n<li>Bygg en backoffice-applikation p\u00e5 Django och Python som visar tidsbegr\u00e4nsade erbjudanden till dina kunder varje g\u00e5ng som en objektspecifik rabatt eller f\u00f6rs\u00e4ljningsh\u00e4ndelse intr\u00e4ffar.<\/li>\n<li>Integrera Python-skript som k\u00f6rs inuti din WordPress-webbplats<\/li>\n<\/ul>\n<p>Den h\u00e4r handledningen hj\u00e4lper dig att skapa en enkel Python-konsolapplikation som kommunicerar med och utf\u00f6r operationer p\u00e5 WordPress REST API. Den fullst\u00e4ndiga projektkoden finns ocks\u00e5 tillg\u00e4nglig.<\/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>Installera och konfigurera WordPress<\/h2>\n<p>L\u00e5t oss f\u00f6rst installera och k\u00f6ra en WordPress-webbplats lokalt p\u00e5 din utvecklingsmaskin. Detta \u00e4r ett utm\u00e4rkt s\u00e4tt att b\u00f6rja med WordPress eftersom du inte beh\u00f6ver skapa ett konto eller k\u00f6pa ett dom\u00e4nnamn f\u00f6r hosting.<\/p>\n<p>Innan du installerar WordPress lokalt s\u00e5 kr\u00e4vs det att vissa komponenter k\u00f6rs p\u00e5 din dator, bland annat Apache-webbservern, en lokal databas och PHP-spr\u00e5ket som WordPress \u00e4r skrivet i.<\/p>\n<p>Som tur \u00e4r s\u00e5 kan vi anv\u00e4nda <a href=\"https:\/\/kinsta.com\/se\/devkinsta\/\" target=\"_blank\" rel=\"noopener noreferrer\">DevKinsta<\/a>, ett kostnadsfritt lokalt utvecklingspaket f\u00f6r WordPress som finns tillg\u00e4ngligt f\u00f6r alla st\u00f6rre operativsystem (du beh\u00f6ver inte vara Kinsta-kund f\u00f6r att anv\u00e4nda det).<\/p>\n<p>DevKinsta finns f\u00f6r Windows, Mac och Linux och installerar WordPress plus alla dess beroenden p\u00e5 din lokala maskin.<\/p>\n<p>Innan du installerar DevKinsta s\u00e5 m\u00e5ste du ha Docker ig\u00e5ng lokalt, s\u00e5 ladda ner och <a href=\"https:\/\/docs.docker.com\/engine\/install\/\" target=\"_blank\" rel=\"noopener noreferrer\">installera Docker Engine<\/a> om du \u00e4nnu inte har gjort detta.<\/p>\n<p>N\u00e4r du har installerat Docker Desktop s\u00e5 kan du <a href=\"https:\/\/kinsta.com\/se\/devkinsta\/download\/\" target=\"_blank\" rel=\"noopener noreferrer\">automatiskt h\u00e4mta<\/a> det paket som passar ditt operativsystem.<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 826px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/DevKinsta-downloading-screen.png\" alt=\"DevKinsta's installationssida.\" width=\"826\" height=\"570\"><figcaption class=\"wp-caption-text\">DevKinsta&#8217;s installationssida.<\/figcaption><\/figure><\/figure>\n<p>N\u00e4r du k\u00f6r DevKinsta-installationsprogrammet s\u00e5 b\u00f6rjar Docker initieras omedelbart:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 546px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/DevKinsta-starting-Docker-screen.png\" alt=\"DevKinsta startar Docker lokalt.\" width=\"546\" height=\"368\"><figcaption class=\"wp-caption-text\">DevKinsta startar Docker lokalt.<\/figcaption><\/figure><\/figure>\n<p>D\u00e4refter s\u00e5 v\u00e4ljer du <strong>Ny WordPress-webbplats<\/strong> i menyn <strong>Skapa ny webbplats<\/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:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/DevKinsta-create-new-WordPress-site-screen.png\" alt=\"DevKinsta's meny Skapa ny webbplats.\" width=\"905\" height=\"521\"><figcaption class=\"wp-caption-text\">DevKinsta&#8217;s meny Skapa ny webbplats.<\/figcaption><\/figure><\/figure>\n<p>Nu kr\u00e4ver DevKinsta&#8217;s installationsprogram att du skapar autentiseringsuppgifter f\u00f6r WordPress-administrat\u00f6rskontot:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 501px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/DevKinsta-new-WordPress-site-creation-screen.png\" alt=\"DevKinsta visar formul\u00e4ret f\u00f6r en ny WordPress-webbplats.\" width=\"501\" height=\"463\"><figcaption class=\"wp-caption-text\">DevKinsta visar formul\u00e4ret f\u00f6r en ny WordPress-webbplats.<\/figcaption><\/figure><\/figure>\n<p>N\u00e4r DevKinsta v\u00e4l \u00e4r installerat s\u00e5 \u00e4r det en frist\u00e5ende applikation. Nu kan du f\u00e5 tillg\u00e5ng till b\u00e5de WordPress-webbplatsen (via knappen <strong>\u00d6ppna webbplats<\/strong> ) och WordPress-administrat\u00f6rspanelen (knappen <strong>WP Admin<\/strong>).<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 969px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/DevKinsta-WordPress-site-info-screen.png\" alt=\"DevKinsta's webbplatsinformationspanel.\" width=\"969\" height=\"550\"><figcaption class=\"wp-caption-text\">DevKinsta&#8217;s webbplatsinformationspanel.<\/figcaption><\/figure><\/figure>\n<p>D\u00e4refter s\u00e5 m\u00e5ste du aktivera <a href=\"https:\/\/kinsta.com\/se\/blog\/sa-fungerar-ssl\/\" target=\"_blank\" rel=\"noopener noreferrer\">SSL och HTTPS<\/a> f\u00f6r din webbplats. Detta f\u00f6rb\u00e4ttrar s\u00e4kerheten p\u00e5 din webbplats genom ett SSL-certifikat.<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 969px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/DevKinsta-SSL-and-HTTPS-option-screen.png\" alt=\"DevKinsta's alternativ \"SSL och HTTPS\".\" width=\"969\" height=\"550\"><figcaption class=\"wp-caption-text\">DevKinsta&#8217;s alternativ &#8221;SSL och HTTPS&#8221;.<\/figcaption><\/figure><\/figure>\n<p>G\u00e5 nu till DevKinsta-appen och klicka p\u00e5 knappen<strong> \u00d6ppna webbplats<\/strong>. En ny webbl\u00e4sarflik visar startsidan f\u00f6r din WordPress-webbplats:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 827px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/DevKinsta-new-local-site-Hello-World.png\" alt=\"WordPress-hemsida.\" width=\"827\" height=\"612\"><figcaption class=\"wp-caption-text\">WordPress-hemsida.<\/figcaption><\/figure><\/figure>\n<p>Det h\u00e4r \u00e4r din WordPress-blogg, d\u00e4r du kan b\u00f6rja skriva. Men f\u00f6r att Python ska kunna f\u00e5 tillg\u00e5ng till och anv\u00e4nda WordPress REST API s\u00e5 m\u00e5ste vi f\u00f6rst konfigurera WordPress Admin.<br \/>\nKlicka nu p\u00e5 knappen <strong>WP Admin<\/strong> i DevKinsta-appen och ange sedan din anv\u00e4ndare och ditt l\u00f6senord f\u00f6r att f\u00e5 tillg\u00e5ng till <strong>WordPress-instrumentpanelen<\/strong>:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 357px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/WordPress-admin-dashboard-login-screen.png\" alt=\"WordPress-inloggningsformul\u00e4r.\" width=\"357\" height=\"385\"><figcaption class=\"wp-caption-text\">WordPress-inloggningsformul\u00e4r.<\/figcaption><\/figure><\/figure>\n<p>N\u00e4r du \u00e4r inloggad s\u00e5 ser du <strong>WordPress-instrumentpanelen<\/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:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/welcome-to-WordPress-admin-screen.png\" alt=\"Sida f\u00f6r WordPress-instrumentpanelen.\" width=\"989\" height=\"612\"><figcaption class=\"wp-caption-text\">Sida f\u00f6r WordPress-instrumentpanelen.<\/figcaption><\/figure><\/figure>\n<p>WordPress anv\u00e4nder cookieautentisering som standardmetod. Men om du vill styra den med hj\u00e4lp av REST API s\u00e5 m\u00e5ste du autentisera dig med en teknik som ger tillg\u00e5ng till WordPress REST API.<br \/>\nF\u00f6r detta s\u00e5 anv\u00e4nder du <a href=\"https:\/\/make.wordpress.org\/core\/2020\/11\/05\/application-passwords-integration-guide\/\" target=\"_blank\" rel=\"noopener noreferrer\">applikationsl\u00f6senord<\/a>. Dessa \u00e4r 24 tecken l\u00e5nga str\u00e4ngar som WordPress genererar och associerar med en anv\u00e4ndarprofil som har beh\u00f6righet att hantera din webbplats.<br \/>\nF\u00f6r att anv\u00e4nda Applikationsl\u00f6senord s\u00e5 klickar du p\u00e5 <strong>Plugin<\/strong>-menyn p\u00e5 instrumentpanelen och s\u00f6ker sedan efter pluginet med samma namn. Installera och aktivera sedan pluginet Application Password:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 752px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/WordPress-add-plugins-Application-Passwords.png\" alt=\"Pluginet Application Passwords f\u00f6r WordPress.\" width=\"752\" height=\"445\"><figcaption class=\"wp-caption-text\">Pluginet Application Passwords f\u00f6r WordPress.<\/figcaption><\/figure><\/figure>\n<p>F\u00f6r att b\u00f6rja med skapandet av ditt applikationsl\u00f6senord s\u00e5 expanderar du menyn <strong>Anv\u00e4ndare<\/strong> och klickar p\u00e5 <strong>Alla anv\u00e4ndare<\/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:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/expanded-Users-WordPress-menu.png\" alt=\"Ut\u00f6kad meny f\u00f6r anv\u00e4ndare.\" width=\"272\" height=\"205\"><figcaption class=\"wp-caption-text\">Ut\u00f6kad meny f\u00f6r anv\u00e4ndare.<\/figcaption><\/figure><\/figure>\n<p>Klicka nu p\u00e5 <strong>Redigera<\/strong> under ditt administrat\u00f6rsanv\u00e4ndarnamn:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 1015px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/edit-screen-WordPress-user.png\" alt=\"WP-Admin WordPress-gr\u00e4nssnitt.\" width=\"1015\" height=\"471\"><figcaption class=\"wp-caption-text\">WP-Admin WordPress-gr\u00e4nssnitt.<\/figcaption><\/figure><\/figure>\n<p>Scrolla ner p\u00e5 sidan <strong>Redigera anv\u00e4ndare<\/strong> och hitta avsnittet <strong>Applikationsl\u00f6senord<\/strong>. H\u00e4r anger du ett namn f\u00f6r applikationsl\u00f6senordet, som du senare kommer att anv\u00e4nda f\u00f6r att autentisera dina Python-appf\u00f6rfr\u00e5gningar och anv\u00e4nda REST API:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 761px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/Application-Passwords-plugin-dashboard.png\" alt=\"Sidan f\u00f6r Application Password.\" width=\"761\" height=\"362\"><figcaption class=\"wp-caption-text\">Sidan f\u00f6r Application Password.<\/figcaption><\/figure><\/figure>\n<p>Klicka p\u00e5 <strong>L\u00e4gg till nytt applikationsl\u00f6senord <\/strong>s\u00e5 att WordPress kan generera ett slumpm\u00e4ssigt l\u00f6senord med 24 tecken \u00e5t dig:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 771px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/Application-Passwords-new-password-page.png\" alt=\"Sidan f\u00f6r nytt applikationsl\u00f6senord.\" width=\"771\" height=\"110\"><figcaption class=\"wp-caption-text\">Sidan f\u00f6r nytt applikationsl\u00f6senord.<\/figcaption><\/figure><\/figure>\n<p>D\u00e4refter s\u00e5 kopierar du l\u00f6senordet och sparar det p\u00e5 en s\u00e4ker plats f\u00f6r att kunna anv\u00e4nda det senare. Kom ih\u00e5g att du inte kommer att kunna h\u00e4mta l\u00f6senordet n\u00e4r du st\u00e4nger den h\u00e4r sidan.<\/p>\n<p>Slutligen s\u00e5 m\u00e5ste du konfigurera permal\u00e4nkar. WordPress l\u00e5ter dig skapa en anpassad webbadress-struktur f\u00f6r dina permal\u00e4nkar och arkiv. L\u00e5t oss \u00e4ndra p\u00e5 den s\u00e5 att ett WordPress-inl\u00e4gg med titeln &#8221;Din f\u00f6rsta WordPress-webbplats&#8221; kan n\u00e5s via den intuitiva webbadressen https:\/\/your-website.local:port\/your-first-wordpress-website\/. Det h\u00e4r tillv\u00e4gag\u00e5ngss\u00e4ttet erbjuder flera f\u00f6rdelar, bland annat en f\u00f6rb\u00e4ttrad anv\u00e4ndbarhet och estetik.<\/p>\n<p>F\u00f6r att konfigurera permal\u00e4nkar s\u00e5 expanderar du avsnittet <strong>Inst\u00e4llningar<\/strong> och klickar p\u00e5 menyn <strong>Permal\u00e4nkar<\/strong>. H\u00e4r \u00e4ndrar du <strong>Gemensamma inst\u00e4llningar<\/strong> till <strong>Inl\u00e4ggsnamn<\/strong>:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 996px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/WordPress-change-Permalink-settings-post_name.png\" alt=\"\u00c4ndra inst\u00e4llningar f\u00f6r WordPress permal\u00e4nkar.\" width=\"996\" height=\"592\"><figcaption class=\"wp-caption-text\">\u00c4ndra inst\u00e4llningar f\u00f6r WordPress permal\u00e4nkar.<\/figcaption><\/figure><\/figure>\n<p>Det \u00e4r \u00e4ven n\u00f6dv\u00e4ndigt att st\u00e4lla in permal\u00e4nkstrukturen med hj\u00e4lp av <strong>Inl\u00e4ggsnamn<\/strong>-strukturen eftersom det g\u00f6r det m\u00f6jligt f\u00f6r oss att h\u00e4mta inl\u00e4gg senare i v\u00e5r Python-kod med hj\u00e4lp av JSON-formatet. Annars s\u00e5 kommer det att uppst\u00e5 ett JSON-avkodningsfel.<\/p>\n<h2>Hur man styr WordPress fr\u00e5n Python<\/h2>\n<p>WordPress \u00e4r skrivet i PHP, men har ett REST API som g\u00f6r det m\u00f6jligt f\u00f6r andra programmeringsspr\u00e5k, webbplatser och appar att konsumera dess inneh\u00e5ll. Exponering av WordPress-inneh\u00e5llet i REST-arkitektur g\u00f6r det tillg\u00e4ngligt i JSON-format. Tack vare detta s\u00e5 kan andra tj\u00e4nster integreras med WordPress och utf\u00f6ra CRUD-operationer (skapa, l\u00e4sa, uppdatera och radera) utan att kr\u00e4va en lokal WordPress-installation.<br \/>\nD\u00e4refter ska du bygga en enkel Python-app f\u00f6r att se hur du kan anv\u00e4nda WordPress REST API f\u00f6r att skapa, h\u00e4mta, uppdatera och radera inl\u00e4gg.<br \/>\nSkapa en ny katalog f\u00f6r ditt nya enkla Pythonprojekt och namnge det n\u00e5got i stil med <code>PythonWordPress<\/code>:<\/p>\n<pre><code class=\"language-bash\">..\/PythonWordPress<\/code><\/pre>\n<p>Nu ska du skapa en virtuell milj\u00f6 f\u00f6r ditt projekt, s\u00e5 att det kan uppr\u00e4tth\u00e5lla en oberoende upps\u00e4ttning av installerade Python-paket, isolera dem fr\u00e5n dina systemkataloger och undvika versionskonflikter. Skapa en virtuell milj\u00f6 genom att utf\u00f6ra kommandot <code>venv<\/code>:<\/p>\n<pre><code class=\"language-bash\">python3 -m venv .venv<\/code><\/pre>\n<p>K\u00f6r nu ett kommando f\u00f6r att aktivera den virtuella milj\u00f6n <strong>.venv<\/strong>. Detta kommando varierar beroende p\u00e5 operativsystem:<\/p>\n<ul>\n<li>Windows <code>.venvScriptsactivate<\/code><\/li>\n<li>Mac\/Linux <code>.venv\/bin\/activate<\/code><\/li>\n<\/ul>\n<p>D\u00e4refter s\u00e5 lagrar du konfigurationen f\u00f6r ditt WordPress-konto. F\u00f6r att separera appkonfigurationen fr\u00e5n din Pythonkod s\u00e5 skapar du en <strong>.env<\/strong>-fil i din projektkatalog och l\u00e4gger till dessa milj\u00f6variabler i filen:<\/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>Det \u00e4r lyckligtvis enkelt att l\u00e4sa ovanst\u00e5ende data fr\u00e5n en Python-app. Du kan installera paketet <strong>Python-dotenv<\/strong> s\u00e5 att din applikation kan l\u00e4sa konfigurationen fr\u00e5n <strong>.env<\/strong>-filen:<\/p>\n<pre><code class=\"language-bash\">pip install python-dotenv<\/code><\/pre>\n<p>Installera sedan <strong>aiohttp<\/strong>, en asynkron HTTP-klient\/server f\u00f6r Python:<\/p>\n<pre><code class=\"language-bash\">pip install aiohttp<\/code><\/pre>\n<p>L\u00e4gg nu till en fil som heter <strong>app.py<\/strong> med f\u00f6ljande kod:<\/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>Koden ovan visar en konsolmeny och ber dig att ange ett nummer f\u00f6r att v\u00e4lja ett alternativ. D\u00e4refter s\u00e5 ut\u00f6kar du det h\u00e4r projektet och implementerar koden som g\u00f6r att du kan lista alla inl\u00e4gg och h\u00e4mta ett specifikt inl\u00e4gg med hj\u00e4lp av dess inl\u00e4ggs-ID.<\/p>\n<h2>H\u00e4mta inl\u00e4gg i kod<\/h2>\n<p>F\u00f6r att interagera med WordPress REST API s\u00e5 m\u00e5ste du skapa en ny Python-fil. Skapa en fil som heter <strong>wordpress_api_helper.py<\/strong> med f\u00f6ljande inneh\u00e5ll:<\/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>L\u00e4gg m\u00e4rke till anv\u00e4ndningen av <strong>aiohttp<\/strong>-biblioteket ovan. Moderna spr\u00e5k tillhandah\u00e5ller syntax och verktyg som m\u00f6jligg\u00f6r asynkron programmering. Detta \u00f6kar applikationens reaktionsf\u00f6rm\u00e5ga genom att applikationen kan utf\u00f6ra uppgifter vid sidan av operationer som exempelvis <a href=\"https:\/\/kinsta.com\/blog\/what-is-an-http-request\/\" target=\"_blank\" rel=\"noopener noreferrer\">webbf\u00f6rfr\u00e5gningar<\/a>, databasoperationer och disk I\/O. Python erbjuder <a href=\"https:\/\/docs.python.org\/3\/library\/asyncio.html\" target=\"_blank\" rel=\"noopener noreferrer\">asyncio<\/a> som en grund f\u00f6r sitt ramverk f\u00f6r asynkron programmering, och biblioteket <a href=\"https:\/\/docs.aiohttp.org\/en\/stable\/\" target=\"_blank\" rel=\"noopener noreferrer\">aiohttp<\/a> byggs ovanp\u00e5<strong> asyncio<\/strong> f\u00f6r att ge asynkron \u00e5tkomst till HTTP-klient\/server-operationer som utf\u00f6rs i Python.<\/p>\n<p>Funktionen <code>ClientSession<\/code> ovan k\u00f6rs asynkront och returnerar ett <code>session<\/code> -objekt, som v\u00e5r applikation anv\u00e4nder f\u00f6r att utf\u00f6ra en HTTP GET-operation mot <code>\/wp-json\/wp\/v2\/posts<\/code> -slutpunkten. Den enda skillnaden mellan en beg\u00e4ran om att h\u00e4mta alla inl\u00e4gg och en beg\u00e4ran om ett specifikt inl\u00e4gg \u00e4r att det sistn\u00e4mnda beg\u00e4randet skickar en <code>post id<\/code> -parameter i webbadress-s\u00f6kv\u00e4gen: <code>\/wp-json\/wp\/v2\/posts\/{id}<\/code>.<br \/>\n\u00d6ppna nu filen <strong>app.py<\/strong> och l\u00e4gg till <code>import<\/code> -angivelsen:<\/p>\n<pre><code class=\"language-python\">from wordpress_api_helper import get_all_posts, get_post<\/code><\/pre>\n<p>\u00c4ndra sedan funktionen <code>main<\/code> s\u00e5 att den anropar funktionerna <code>get_all_posts<\/code> och <code>get_post<\/code>:<\/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>K\u00f6r sedan applikationen:<\/p>\n<pre><code class=\"language-bash\">python app.py<\/code><\/pre>\n<p>Du kommer att se applikationsmenyn:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 804px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/Python-app-WordPress-start.png\" alt=\"Python's applikationsmeny.\" width=\"804\" height=\"114\"><figcaption class=\"wp-caption-text\">Python&#8217;s applikationsmeny.<\/figcaption><\/figure><\/figure>\n<p>Prova nu alternativ 1 f\u00f6r att visa listan \u00f6ver inl\u00e4gg som din Python-app h\u00e4mtar och alternativ 2 f\u00f6r att v\u00e4lja ett inl\u00e4gg:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 670px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/list-and-select-posts-Python-app.png\" alt=\"Python-appen visar listan med inl\u00e4gg och ett enskilt inl\u00e4gg som anv\u00e4ndaren har valt.\" width=\"670\" height=\"624\"><figcaption class=\"wp-caption-text\">Python-appen visar listan med inl\u00e4gg och ett enskilt inl\u00e4gg som anv\u00e4ndaren har valt.<\/figcaption><\/figure><\/figure>\n<p>\u00a0<\/p>\n<h2>Skapa inl\u00e4gg i kod<\/h2>\n<p>F\u00f6r att skapa ett WordPress-inl\u00e4gg i Python s\u00e5 b\u00f6rjar du med att \u00f6ppna filen <strong>wordpress_api_helper.py<\/strong> och l\u00e4gga till funktionen <code>create_post<\/code>:<\/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>Den h\u00e4r koden anropar funktionen <code>post<\/code> i objektet <code>session<\/code> och skickar parametern <code>auth<\/code> bredvid webbadressen f\u00f6r REST API-slutpunkten. Objektet <code>auth<\/code> inkluderar nu WordPress-anv\u00e4ndaren och l\u00f6senordet som du skapade med hj\u00e4lp av Application Passwords. \u00d6ppna nu filen <strong>app.py<\/strong> och l\u00e4gg till kod f\u00f6r att importera <code>create_post<\/code> och menyn:<\/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>L\u00e4gg sedan till ett tredje menyalternativ:<\/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>K\u00f6r sedan appen och prova alternativ 3, genom att skicka en titel och ett inneh\u00e5ll f\u00f6r att skapa ett nytt inl\u00e4gg i WordPress:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 671px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/create-a-WordPress-post-Python-app.png\" alt=\"Python-appen visar ett nyskapat inl\u00e4gg i WordPress.\" width=\"671\" height=\"335\"><figcaption class=\"wp-caption-text\">Python-appen visar ett nyskapat inl\u00e4gg i WordPress.<\/figcaption><\/figure><\/figure>\n<p>Om du v\u00e4ljer alternativ 1 igen s\u00e5 returneras id och titeln f\u00f6r det nytillkomna inl\u00e4gget:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 672px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/return-id-newly-added-post.png\" alt=\"Python-appen returnerar det nya inl\u00e4ggets titel och id.\" width=\"672\" height=\"333\"><figcaption class=\"wp-caption-text\">Python-appen returnerar det nya inl\u00e4ggets titel och id.<\/figcaption><\/figure><\/figure>\n<p>Du kan \u00e4ven \u00f6ppna din WordPress-webbplats f\u00f6r att se det nya inl\u00e4gget:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 754px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/Kinsta-Compute-Optimized-C2-post.png\" alt=\"Webbl\u00e4sarbild av det nya WordPress-inl\u00e4gget.\" width=\"754\" height=\"600\"><figcaption class=\"wp-caption-text\">Webbl\u00e4sarbild av det nya WordPress-inl\u00e4gget.<\/figcaption><\/figure><\/figure>\n<h2>Uppdatering av inl\u00e4gg i kod<\/h2>\n<p>\u00d6ppna filen <strong>wordpress_api_helper.py<\/strong> och l\u00e4gg till funktionen <code>update_post<\/code>:<\/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>\u00d6ppna sedan filen <strong>app.py<\/strong> och l\u00e4gg till kod f\u00f6r att importera <code>update_post<\/code> och menyn:<\/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>L\u00e4gg sedan till ett fj\u00e4rde menyalternativ:<\/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>K\u00f6r sedan appen och prova alternativ 4, genom att skicka ett inl\u00e4ggs-ID, en titel och ett inneh\u00e5ll f\u00f6r att uppdatera ett befintligt inl\u00e4gg.<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 670px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/updating-WordPress-post-Python-app.png\" alt=\"Python-appen visar den uppdaterade menyn.\" width=\"670\" height=\"338\"><figcaption class=\"wp-caption-text\">Python-appen visar den uppdaterade menyn.<\/figcaption><\/figure><\/figure>\n<p>Om du v\u00e4ljer alternativ 2 och l\u00e4mnar \u00f6ver uppdaterat post-ID s\u00e5 kommer du att f\u00e5 information om det nytillkomna inl\u00e4gget:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 673px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/return-updated-post-details.png\" alt=\"Python-appen visar det uppdaterade inl\u00e4gget.\" width=\"673\" height=\"318\"><figcaption class=\"wp-caption-text\">Python-appen visar det uppdaterade inl\u00e4gget.<\/figcaption><\/figure><\/figure>\n<p>\u00a0<\/p>\n<h2>Radera inl\u00e4gg i kod<\/h2>\n<p>Du kan skicka Post ID till REST API f\u00f6r att ta bort ett inl\u00e4gg.<br \/>\n\u00d6ppna filen <strong>wordpress_api_helper.py<\/strong> och l\u00e4gg till funktionen <code>delete_post<\/code>:<\/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>\u00d6ppna nu filen <strong>app.py<\/strong> och l\u00e4gg till kod f\u00f6r att importera <code>delete_post<\/code> och menyn:<\/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>L\u00e4gg sedan till ett femte menyalternativ:<\/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>Nu k\u00f6r du appen och provar alternativ 5, d\u00e4r du anger ett ID f\u00f6r att ta bort det befintliga inl\u00e4gget i WordPress:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 651px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/deleting-WordPress-Post-Python-app.png\" alt=\"Python-appen som visar radering av det valda inl\u00e4gget.\" width=\"651\" height=\"120\"><figcaption class=\"wp-caption-text\">Python-appen som visar radering av det valda inl\u00e4gget.<\/figcaption><\/figure><\/figure>\n<p>Obs: Det borttagna inl\u00e4gget kan fortfarande visas om du k\u00f6r alternativet <strong>List Posts<\/strong>:<\/p>\n<figure style=\"text-align: center\">\n<p><figure style=\"width: 671px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/10\/Python-app-listing-posts.png\" alt=\"Python-appen visar den ursprungliga listan \u00f6ver inl\u00e4gg.\" width=\"671\" height=\"288\"><figcaption class=\"wp-caption-text\">Python-appen visar den ursprungliga listan \u00f6ver inl\u00e4gg.<\/figcaption><\/figure><\/figure>\n<p>F\u00f6r att bekr\u00e4fta att du har raderat inl\u00e4gget s\u00e5 v\u00e4ntar du n\u00e5gra sekunder och provar alternativet <strong>List Posts<\/strong> igen. Sen \u00e4r du klar!<\/p>\n<h2>Sammanfattning<\/h2>\n<p>Tack vare WordPress REST API och Pythons HTTP-klientbibliotek s\u00e5 kan Python-appar och WordPress samarbeta och prata med varandra. F\u00f6rdelen med REST API:et \u00e4r att du kan styra WordPress p\u00e5 distans fr\u00e5n en Python-app. Pythons kraftfulla spr\u00e5k m\u00f6jligg\u00f6r ett automatiserat inneh\u00e5llsskapande som f\u00f6ljer din \u00f6nskade struktur och frekvens.<\/p>\n<p>DevKinsta g\u00f6r det snabbt och enkelt att skapa och utveckla en lokal WordPress-webbplats. Den tillhandah\u00e5ller en lokal milj\u00f6 f\u00f6r utveckling av WordPress-teman och -plugins och erbjuder en f\u00f6renklad distribueringsmodell tack vare sin Docker-baserade, frist\u00e5ende installationsmodell.<\/p>\n<p>Vad har du f\u00f6r erfarenhet av att arbeta med Python och WordPress?<\/p>\n<p><em>N\u00e4r du \u00e4r redo att ut\u00f6ka den erfarenheten s\u00e5 kan du l\u00e4sa <a href=\"https:\/\/kinsta.com\/se\/blog\/wordpress-rest-api\/\" target=\"_blank\" rel=\"noopener noreferrer\">Den kompletta guiden till grunderna i WordPress REST API <\/a><\/em>\u00a0f\u00f6r att utforska andra m\u00f6jligheter.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WordPress har blivit det mest anv\u00e4nda systemet f\u00f6r inneh\u00e5llshantering (CMS), vilket till stor del beror p\u00e5 dess gr\u00e4nssnitt f\u00f6r till\u00e4mpningsprogrammering (API). WordPress REST API g\u00f6r det &#8230;<\/p>\n","protected":false},"author":117,"featured_media":46510,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[384,42],"topic":[768,823],"class_list":["post-46509","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-python","tag-webdev","topic-devkinsta","topic-sprak-for-webbutveckling"],"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>Polera dina Python-knep genom att ansluta din app till WordPress<\/title>\n<meta name=\"description\" content=\"L\u00e4r dig hur Python-appar och WordPress kan samarbeta med hj\u00e4lp av WordPress REST API och Pythons HTTP Klientbibliotek.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/se\/blog\/python-wordpress\/\" \/>\n<meta property=\"og:locale\" content=\"sv_SE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Polera dina Python-knep genom att ansluta din app till WordPress\" \/>\n<meta property=\"og:description\" content=\"L\u00e4r dig hur Python-appar och WordPress kan samarbeta med hj\u00e4lp av WordPress REST API och Pythons HTTP Klientbibliotek.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/se\/blog\/python-wordpress\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstasweden\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-10-24T08:18:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-21T10:00:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/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=\"L\u00e4r dig hur Python-appar och WordPress kan samarbeta med hj\u00e4lp av WordPress REST API och Pythons HTTP Klientbibliotek.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2022\/10\/python-wordpress.png\" \/>\n<meta name=\"twitter:creator\" content=\"@salmanravoof\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_se\" \/>\n<meta name=\"twitter:label1\" content=\"Skriven av\" \/>\n\t<meta name=\"twitter:data1\" content=\"Salman Ravoof\" \/>\n\t<meta name=\"twitter:label2\" content=\"Ber\u00e4knad l\u00e4stid\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minuter\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/se\/blog\/python-wordpress\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/se\/blog\/python-wordpress\/\"},\"author\":{\"name\":\"Salman Ravoof\",\"@id\":\"https:\/\/kinsta.com\/se\/#\/schema\/person\/9cafd2eedd617e640eeea4cf3a5fd987\"},\"headline\":\"Polera dina Python-knep genom att ansluta din app till WordPress\",\"datePublished\":\"2022-10-24T08:18:55+00:00\",\"dateModified\":\"2023-09-21T10:00:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/se\/blog\/python-wordpress\/\"},\"wordCount\":2352,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/se\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/se\/blog\/python-wordpress\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2022\/10\/python-wordpress.png\",\"keywords\":[\"Python\",\"webdev\"],\"inLanguage\":\"sv-SE\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/se\/blog\/python-wordpress\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/se\/blog\/python-wordpress\/\",\"url\":\"https:\/\/kinsta.com\/se\/blog\/python-wordpress\/\",\"name\":\"Polera dina Python-knep genom att ansluta din app till WordPress\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/se\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/se\/blog\/python-wordpress\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/se\/blog\/python-wordpress\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2022\/10\/python-wordpress.png\",\"datePublished\":\"2022-10-24T08:18:55+00:00\",\"dateModified\":\"2023-09-21T10:00:11+00:00\",\"description\":\"L\u00e4r dig hur Python-appar och WordPress kan samarbeta med hj\u00e4lp av WordPress REST API och Pythons HTTP Klientbibliotek.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/se\/blog\/python-wordpress\/#breadcrumb\"},\"inLanguage\":\"sv-SE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/se\/blog\/python-wordpress\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\/\/kinsta.com\/se\/blog\/python-wordpress\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2022\/10\/python-wordpress.png\",\"contentUrl\":\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2022\/10\/python-wordpress.png\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/se\/blog\/python-wordpress\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/se\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DevKinsta\",\"item\":\"https:\/\/kinsta.com\/se\/topics\/devkinsta\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Polera dina Python-knep genom att ansluta din app till WordPress\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/se\/#website\",\"url\":\"https:\/\/kinsta.com\/se\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Snabba, s\u00e4kra, premium hosting-l\u00f6sningar\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/se\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/se\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"sv-SE\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/se\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/se\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\/\/kinsta.com\/se\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/se\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstasweden\/\",\"https:\/\/x.com\/kinsta_se\",\"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:\/\/kinsta.com\/se\/#\/schema\/person\/9cafd2eedd617e640eeea4cf3a5fd987\",\"name\":\"Salman Ravoof\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\/\/kinsta.com\/se\/#\/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:\/\/kinsta.com\/se\/blog\/author\/salmanravoof\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Polera dina Python-knep genom att ansluta din app till WordPress","description":"L\u00e4r dig hur Python-appar och WordPress kan samarbeta med hj\u00e4lp av WordPress REST API och Pythons HTTP Klientbibliotek.","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:\/\/kinsta.com\/se\/blog\/python-wordpress\/","og_locale":"sv_SE","og_type":"article","og_title":"Polera dina Python-knep genom att ansluta din app till WordPress","og_description":"L\u00e4r dig hur Python-appar och WordPress kan samarbeta med hj\u00e4lp av WordPress REST API och Pythons HTTP Klientbibliotek.","og_url":"https:\/\/kinsta.com\/se\/blog\/python-wordpress\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstasweden\/","article_published_time":"2022-10-24T08:18:55+00:00","article_modified_time":"2023-09-21T10:00:11+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2022\/10\/python-wordpress.png","type":"image\/png"}],"author":"Salman Ravoof","twitter_card":"summary_large_image","twitter_description":"L\u00e4r dig hur Python-appar och WordPress kan samarbeta med hj\u00e4lp av WordPress REST API och Pythons HTTP Klientbibliotek.","twitter_image":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2022\/10\/python-wordpress.png","twitter_creator":"@salmanravoof","twitter_site":"@kinsta_se","twitter_misc":{"Skriven av":"Salman Ravoof","Ber\u00e4knad l\u00e4stid":"16 minuter"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/se\/blog\/python-wordpress\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/se\/blog\/python-wordpress\/"},"author":{"name":"Salman Ravoof","@id":"https:\/\/kinsta.com\/se\/#\/schema\/person\/9cafd2eedd617e640eeea4cf3a5fd987"},"headline":"Polera dina Python-knep genom att ansluta din app till WordPress","datePublished":"2022-10-24T08:18:55+00:00","dateModified":"2023-09-21T10:00:11+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/se\/blog\/python-wordpress\/"},"wordCount":2352,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/se\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/se\/blog\/python-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2022\/10\/python-wordpress.png","keywords":["Python","webdev"],"inLanguage":"sv-SE","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/se\/blog\/python-wordpress\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/se\/blog\/python-wordpress\/","url":"https:\/\/kinsta.com\/se\/blog\/python-wordpress\/","name":"Polera dina Python-knep genom att ansluta din app till WordPress","isPartOf":{"@id":"https:\/\/kinsta.com\/se\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/se\/blog\/python-wordpress\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/se\/blog\/python-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2022\/10\/python-wordpress.png","datePublished":"2022-10-24T08:18:55+00:00","dateModified":"2023-09-21T10:00:11+00:00","description":"L\u00e4r dig hur Python-appar och WordPress kan samarbeta med hj\u00e4lp av WordPress REST API och Pythons HTTP Klientbibliotek.","breadcrumb":{"@id":"https:\/\/kinsta.com\/se\/blog\/python-wordpress\/#breadcrumb"},"inLanguage":"sv-SE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/se\/blog\/python-wordpress\/"]}]},{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/kinsta.com\/se\/blog\/python-wordpress\/#primaryimage","url":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2022\/10\/python-wordpress.png","contentUrl":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2022\/10\/python-wordpress.png","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/se\/blog\/python-wordpress\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/se\/"},{"@type":"ListItem","position":2,"name":"DevKinsta","item":"https:\/\/kinsta.com\/se\/topics\/devkinsta\/"},{"@type":"ListItem","position":3,"name":"Polera dina Python-knep genom att ansluta din app till WordPress"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/se\/#website","url":"https:\/\/kinsta.com\/se\/","name":"Kinsta\u00ae","description":"Snabba, s\u00e4kra, premium hosting-l\u00f6sningar","publisher":{"@id":"https:\/\/kinsta.com\/se\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/se\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"sv-SE"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/se\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/se\/","logo":{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/kinsta.com\/se\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/se\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstasweden\/","https:\/\/x.com\/kinsta_se","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:\/\/kinsta.com\/se\/#\/schema\/person\/9cafd2eedd617e640eeea4cf3a5fd987","name":"Salman Ravoof","image":{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/kinsta.com\/se\/#\/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:\/\/kinsta.com\/se\/blog\/author\/salmanravoof\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/posts\/46509","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/users\/117"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/comments?post=46509"}],"version-history":[{"count":15,"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/posts\/46509\/revisions"}],"predecessor-version":[{"id":47476,"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/posts\/46509\/revisions\/47476"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/46509\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/46509\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/46509\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/46509\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/46509\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/46509\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/46509\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/46509\/translations\/es"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/46509\/translations\/se"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/46509\/translations\/dk"},{"href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/46509\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/media\/46510"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/media?parent=46509"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/tags?post=46509"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/topic?post=46509"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}