ขัดเงา Python ของคุณโดยเชื่อมต่อแอพของคุณกับ WordPress

เผยแพร่แล้ว: 2022-10-18

WordPress ได้กลายเป็นระบบจัดการเนื้อหา (CMS) ที่มีการใช้งานมากที่สุด เนื่องจากส่วนติดต่อการเขียนโปรแกรมแอปพลิเคชัน (API) มีส่วนน้อย WordPress REST API ช่วยให้ WordPress สามารถ "พูดคุย" กับแอปพลิเคชันอื่นๆ ที่เขียนในภาษาต่างๆ ได้ รวมถึง Python

Python เป็นภาษาการเขียนโปรแกรมที่ขยายได้พร้อมการใช้งานที่หลากหลายและไวยากรณ์ที่มนุษย์อ่านได้ ทำให้เป็นเครื่องมือที่ทรงพลังสำหรับการจัดการเนื้อหา WordPress จากระยะไกล

ต่อไปนี้คือกรณีการใช้งาน WordPress REST API สำหรับแอปของคุณและวิธีที่คุณสามารถใช้ Python เพื่อสนับสนุนแอปเหล่านี้:

  • ใช้เทมเพลตที่กำหนดไว้ล่วงหน้าเพื่อให้แอปของคุณเปลี่ยนข้อมูลดิบเป็นโพสต์ที่มีรูปแบบพร้อมคำอธิบายอย่างรวดเร็ว
  • สร้างแอปพลิเคชัน back-office บน Django และ Python ที่แสดงข้อเสนอแบบจำกัดเวลาให้กับลูกค้าของคุณทุกครั้งที่มีส่วนลดเฉพาะวัตถุหรือเหตุการณ์การขายเกิดขึ้น
  • รวมสคริปต์ Python เพื่อเรียกใช้ภายในไซต์ WordPress ของคุณ

บทช่วยสอนนี้จะช่วยคุณสร้างแอปพลิเคชันคอนโซล Python อย่างง่ายที่สื่อสารและดำเนินการกับ WordPress REST API รหัสโครงการที่สมบูรณ์ยังมีอยู่


การติดตั้งและกำหนดค่า WordPress

ขั้นแรก ให้ติดตั้งและเรียกใช้เว็บไซต์ WordPress ภายในเครื่องสำหรับการพัฒนาของคุณ นี่เป็นวิธีที่ยอดเยี่ยมในการเริ่มต้นใช้งาน WordPress เนื่องจากคุณไม่จำเป็นต้องสร้างบัญชีหรือซื้อชื่อโดเมนสำหรับเว็บโฮสติ้ง

ก่อนที่จะติดตั้ง WordPress ในเครื่อง ส่วนประกอบบางอย่างจำเป็นต้องทำงานบนคอมพิวเตอร์ของคุณ รวมถึงเว็บเซิร์ฟเวอร์ Apache ฐานข้อมูลในเครื่อง และภาษา PHP ที่ใช้เขียน WordPress

โชคดีที่เราสามารถใช้ DevKinsta ซึ่งเป็นชุดพัฒนา WordPress ในพื้นที่ฟรีที่มีให้สำหรับระบบปฏิบัติการหลักทั้งหมด (คุณไม่จำเป็นต้องเป็นลูกค้า Kinsta จึงจะใช้งานได้)

DevKinsta พร้อมใช้งานสำหรับ Windows, Mac และ Linux และติดตั้ง WordPress รวมถึงการพึ่งพาทั้งหมดบนเครื่องของคุณ

ก่อนติดตั้ง DevKinsta คุณต้องมี Docker ทำงานอยู่ในเครื่อง ดังนั้นให้ดาวน์โหลดและติดตั้ง Docker Engine หากคุณยังไม่ได้ติดตั้ง

หลังจากติดตั้ง Docker Desktop คุณสามารถดาวน์โหลดแพ็คเกจที่เหมาะกับระบบปฏิบัติการของคุณได้โดยอัตโนมัติ

ภาพหน้าจอหน้าดาวน์โหลดของ DevKinsta
หน้าการติดตั้ง DevKinsta

เมื่อคุณเรียกใช้ตัวติดตั้ง DevKinsta Docker จะเริ่มเริ่มต้นทันที:

หน้าจอ Docker เริ่มต้นของ DevKinsta
DevKinsta เริ่ม Docker ในเครื่อง

จากนั้นเลือก ไซต์ WordPress ใหม่ จากเมนู สร้างไซต์ใหม่ :

DevKinsta สร้างหน้าจอเว็บไซต์ WordPress ใหม่
เมนูสร้างไซต์ใหม่ของ DevKinsta

ตอนนี้ตัวติดตั้ง DevKinsta ต้องการให้คุณสร้างข้อมูลรับรองสำหรับบัญชีผู้ดูแลระบบ WordPress:

หน้าจอการสร้างไซต์ WordPress ใหม่ของ DevKinsta
DevKinsta แสดงแบบฟอร์มไซต์ WordPress ใหม่

เมื่อติดตั้งแล้ว DevKinsta จะเป็นแอปพลิเคชันแบบสแตนด์อโลน ตอนนี้คุณสามารถเข้าถึงทั้งไซต์ WordPress (ผ่านปุ่ม เปิดไซต์ ) และแดชบอร์ดผู้ดูแลระบบ WordPress (ปุ่มผู้ ดูแลระบบ WP )

หน้าจอข้อมูลเว็บไซต์ WordPress ของ DevKinsta
แผงข้อมูลไซต์ของ DevKinsta

ถัดไป คุณต้องเปิดใช้งาน SSL และ HTTPS สำหรับเว็บไซต์ของคุณ สิ่งนี้ช่วยเพิ่มความปลอดภัยของเว็บไซต์ของคุณผ่านใบรับรอง SSL

เปิดใช้งานตัวเลือก SSL และ HTTPS ของ DevKinsta
ตัวเลือก “SSL และ HTTPS” ของ DevKinsta

ไปที่แอป DevKinsta แล้วคลิกปุ่ม เปิดไซต์ แท็บเบราว์เซอร์ใหม่จะแสดงหน้าแรกของไซต์ WordPress ของคุณ:

หน้าแรกของไซต์ WordPress ในพื้นที่ของคุณ
หน้าแรกของเวิร์ดเพรส

นี่คือบล็อก WordPress ของคุณ ซึ่งคุณสามารถเริ่มเขียนได้ แต่เพื่อให้ Python เข้าถึงและใช้ WordPress REST API เราต้องกำหนดค่าผู้ดูแลระบบ WordPress ก่อน

ตอนนี้ให้คลิกปุ่มผู้ ดูแลระบบ WP บนแอป DevKinsta จากนั้นระบุผู้ใช้และรหัสผ่านของคุณเพื่อเข้าถึง แดชบอร์ด WordPress :

หน้าจอเข้าสู่ระบบแดชบอร์ดผู้ดูแลระบบ WordPress
แบบฟอร์มเข้าสู่ระบบ WordPress

เมื่อคุณเข้าสู่ระบบแล้ว คุณจะเห็น WordPress Dashboard :

ยินดีต้อนรับสู่หน้าจอผู้ดูแลระบบ WordPress
หน้าแดชบอร์ด WordPress

WordPress ใช้การรับรองความถูกต้องของคุกกี้เป็นวิธีมาตรฐาน แต่ถ้าคุณต้องการควบคุมโดยใช้ REST API คุณต้องรับรองความถูกต้องด้วยเทคนิคที่อนุญาตให้เข้าถึง WordPress REST API

สำหรับสิ่งนี้ คุณจะต้องใช้รหัสผ่านแอปพลิเคชัน เหล่านี้เป็นสตริงยาว 24 อักขระที่ WordPress สร้างและเชื่อมโยงกับโปรไฟล์ผู้ใช้ที่ได้รับอนุญาตให้จัดการเว็บไซต์ของคุณ

ในการใช้รหัสผ่านแอปพลิเคชัน ให้คลิกเมนู ปลั๊กอิน บนแดชบอร์ด จากนั้นค้นหาปลั๊กอินที่มีชื่อเดียวกัน จากนั้นติดตั้งและเปิดใช้งานปลั๊กอินรหัสผ่านแอปพลิเคชัน:

การติดตั้งและเปิดใช้งานปลั๊กอิน WordPress Application Passwords
ปลั๊กอินรหัสผ่านแอปพลิเคชันสำหรับ WordPress

ในการเริ่มสร้างรหัสผ่านแอปพลิเคชันของคุณ ให้เริ่มต้นด้วยการขยายเมนู ผู้ใช้ และคลิก ผู้ใช้ทั้งหมด :

ผู้ใช้ที่ขยายเมนู WordPress
เมนูผู้ใช้ที่ขยาย

ตอนนี้ คลิก แก้ไข ด้านล่างชื่อผู้ใช้ผู้ดูแลระบบของคุณ:

คลิกปุ่ม "แก้ไข" ใต้ผู้ใช้ WordPress ของคุณภายใต้เมนูผู้ใช้
อินเทอร์เฟซ WordPress ผู้ดูแลระบบ WP

เลื่อนลงมาที่หน้า แก้ไขผู้ใช้ และค้นหาส่วน รหัสผ่านแอปพลิเคชัน ที่นี่ ระบุชื่อสำหรับรหัสผ่านแอปพลิเคชัน ซึ่งคุณจะใช้ในภายหลังเพื่อตรวจสอบคำขอแอป Python ของคุณและใช้ REST API:

แดชบอร์ดปลั๊กอินรหัสผ่านแอปพลิเคชัน
หน้ารหัสผ่านแอปพลิเคชัน

คลิก เพิ่มรหัสผ่านแอปพลิเคชันใหม่ เพื่อให้ WordPress สามารถสร้างรหัสผ่าน 24 อักขระแบบสุ่มสำหรับคุณ:

รหัสผ่านใหม่ที่สร้างโดยปลั๊กอินรหัสผ่านแอปพลิเคชัน
หน้ารหัสผ่านแอปพลิเคชันใหม่

ถัดไป ให้คัดลอกรหัสผ่านนี้และบันทึกไว้ในที่ปลอดภัยเพื่อใช้ในภายหลัง โปรดจำไว้ว่า คุณจะไม่สามารถเรียกคืนรหัสผ่านนี้ได้เมื่อคุณปิดหน้านี้

สุดท้าย คุณต้องกำหนดค่าลิงก์ถาวร WordPress ช่วยให้คุณสร้างโครงสร้าง URL ที่กำหนดเองสำหรับลิงก์ถาวรและไฟล์เก็บถาวรของคุณ มาเปลี่ยนกันเพื่อให้บทความ WordPress ชื่อเช่น "Your First WordPress Website" สามารถเข้าถึงได้ผ่าน URL ที่ใช้งานง่าย https://your-website.local:port/your-first-wordpress-website/ แนวทางนี้มีประโยชน์หลายประการ รวมถึงความสามารถในการใช้งานและความสวยงามที่ได้รับการปรับปรุง

ในการกำหนดค่าลิงก์ถาวร ให้ขยายส่วน การตั้งค่า แล้วคลิกเมนู ลิงก์ถาวร ที่นี่ เปลี่ยนการ ตั้งค่าทั่วไป เป็น ชื่อโพสต์ :

การเปลี่ยนการตั้งค่าลิงก์ถาวรของ WordPress

การตั้งค่าโครงสร้างลิงก์ถาวรโดยใช้โครงสร้าง ชื่อโพสต์ ก็จำเป็นเช่นกัน เนื่องจากจะทำให้เราสามารถเรียกข้อมูลโพสต์ในภายหลังในโค้ด Python ของเราโดยใช้รูปแบบ JSON มิฉะนั้น จะเกิดข้อผิดพลาดในการถอดรหัส JSON

วิธีควบคุม WordPress จาก Python

WordPress เขียนด้วย PHP แต่มี REST API ที่ช่วยให้ภาษาการเขียนโปรแกรม ไซต์ และแอปอื่น ๆ สามารถใช้เนื้อหาได้ การเปิดเผยเนื้อหา WordPress ในสถาปัตยกรรม REST ทำให้พร้อมใช้งานในรูปแบบ JSON ดังนั้น บริการอื่น ๆ สามารถรวมเข้ากับ WordPress และดำเนินการสร้าง อ่าน อัปเดต และลบ (CRUD) โดยไม่ต้องติดตั้ง WordPress ในเครื่อง

ขั้นต่อไป คุณจะต้องสร้างแอป Python อย่างง่าย เพื่อดูว่าคุณสามารถใช้ WordPress REST API เพื่อสร้าง ดึงข้อมูล อัปเดต และลบโพสต์ได้อย่างไร

สร้างไดเร็กทอรีใหม่สำหรับโปรเจ็กต์ Python อย่างง่ายของคุณ และตั้งชื่อมันว่า PythonWordPress :

 ../PythonWordPress

ตอนนี้ คุณจะสร้างสภาพแวดล้อมเสมือนสำหรับโปรเจ็กต์ของคุณ ซึ่งช่วยให้รักษาชุดแพ็คเกจ Python ที่ติดตั้งอิสระ แยกจากไดเร็กทอรีระบบของคุณและหลีกเลี่ยงข้อขัดแย้งของเวอร์ชัน สร้างสภาพแวดล้อมเสมือนโดยดำเนินการคำสั่ง venv :

 python3 -m venv .venv

ตอนนี้ เรียกใช้คำสั่งเพื่อเปิดใช้งานสภาพแวดล้อมเสมือน . venv คำสั่งนี้แตกต่างกันไปตามระบบปฏิบัติการ:

  • Windows: .venvScriptsactivate
  • Mac/Linux: .venv/bin/activate

ถัดไป เก็บการกำหนดค่าที่เกี่ยวข้องกับบัญชี WordPress ของคุณ หากต้องการแยกการกำหนดค่าแอปออกจากโค้ด Python ให้สร้างไฟล์ . env ในไดเร็กทอรีโปรเจ็กต์ของคุณ และเพิ่มตัวแปรสภาพแวดล้อมเหล่านี้ลงในไฟล์:

 WEBSITE_URL="<>" API_USERNAME="<>" API_PASSWORD="<>"

โชคดีที่การอ่านข้อมูลด้านบนจากแอป Python นั้นเป็นเรื่องง่าย คุณสามารถติดตั้งแพ็คเกจ Python-dotenv เพื่อให้แอปพลิเคชันของคุณสามารถอ่านการกำหนดค่าจากไฟล์ .env ได้ :

 pip install python-dotenv

จากนั้นติดตั้ง aiohttp ซึ่งเป็นไคลเอนต์/เซิร์ฟเวอร์ HTTP แบบอะซิงโครนัสสำหรับ Python:

 pip install aiohttp

ตอนนี้เพิ่มไฟล์ชื่อ app.py ด้วยรหัสต่อไปนี้:

 import asyncio menu_options = { 1: 'List Posts', 2: 'Retrieve a Post' } def print_menu(): for key in menu_options.keys(): print (key, '--', menu_options[key] ) async def main(): while(True): print_menu() option = input_number('Enter your choice: ') #Check what choice was entered and act accordingly if option == 1: print('Listing posts...') elif option == 2: print('Retrieving a post...') else: print('Invalid option. Please enter a number between 1 and 5.') def input_number(prompt): while True: try: value = int(input(prompt)) except ValueError: print('Wrong input. Please enter a number ...') continue if value < 0: print("Sorry, your response must not be negative.") else: break return value def input_text(prompt): while True: text = input(prompt) if len(text) == 0: print("Text is required.") continue else: break return text if __name__=='__main__': asyncio.run(main())

รหัสด้านบนแสดงเมนูคอนโซลและขอให้คุณป้อนตัวเลขเพื่อเลือกตัวเลือก ถัดไป คุณจะขยายโครงการนี้และใช้รหัสที่ช่วยให้คุณสามารถแสดงรายการโพสต์ทั้งหมดและเรียกข้อมูลโพสต์เฉพาะโดยใช้รหัสโพสต์

กำลังดึงโพสต์ในรหัส

ในการโต้ตอบกับ WordPress REST API คุณต้องสร้างไฟล์ Python ใหม่ สร้างไฟล์ชื่อ wordpress_api_helper.py ด้วยเนื้อหาต่อไปนี้:

 import aiohttp import base64 import os import json from dotenv import load_dotenv load_dotenv() user=os.getenv("API_USERNAME") password=os.getenv("API_PASSWORD") async def get_all_posts(): async with aiohttp.ClientSession(os.getenv("WEBSITE_URL")) as session: async with session.get("/wp-json/wp/v2/posts") as response: print("Status:", response.status) text = await response.text() wp_posts = json.loads(text) sorted_wp_posts = sorted(wp_posts, key=lambda p: p['id']) print("=====================================") for wp_post in sorted_wp_posts: print("id:", wp_post['id']) print("title:", wp_post['title']['rendered']) print("=====================================") async def get_post(id): async with aiohttp.ClientSession(os.getenv("WEBSITE_URL")) as session: async with session.get(f"/wp-json/wp/v2/posts/{id}") as response: print("Status:", response.status) text = await response.text() wp_post = json.loads(text) print("=====================================") print("Post") print(" id:", wp_post['id']) print(" title:", wp_post['title']['rendered']) print(" content:", wp_post['content']['rendered']) print("=====================================")

สังเกตการใช้ไลบรารี aiohttp ด้านบน ภาษาสมัยใหม่มีไวยากรณ์และเครื่องมือที่เปิดใช้งานการเขียนโปรแกรมแบบอะซิงโครนัส สิ่งนี้จะเพิ่มการตอบสนองของแอปพลิเคชันโดยอนุญาตให้โปรแกรมทำงานควบคู่ไปกับการดำเนินการต่างๆ เช่น คำขอเว็บ การทำงานของฐานข้อมูล และดิสก์ I/O Python เสนอ asyncio เป็นพื้นฐานสำหรับเฟรมเวิร์กการเขียนโปรแกรมแบบอะซิงโครนัสและไลบรารี aiohttp ถูกสร้างขึ้นบน asyncio เพื่อนำการเข้าถึง HTTP Client/Server แบบอะซิงโครนัสที่ทำใน Python

ฟังก์ชัน ClientSession ด้านบนทำงานแบบอะซิงโครนัสและส่งคืนวัตถุ session ซึ่งโปรแกรมของเราใช้เพื่อดำเนินการ HTTP GET กับจุดปลาย /wp-json/wp/v2/posts ข้อแตกต่างระหว่างคำขอดึงข้อมูลโพสต์ทั้งหมดและคำขอเฉพาะคือคำขอสุดท้ายนี้ส่งพารามิเตอร์ post id ในเส้นทาง URL: /wp-json/wp/v2/posts/{id}

ตอนนี้ เปิดไฟล์ app.py และเพิ่มคำสั่ง import :

 from wordpress_api_helper import get_all_posts, get_post

ถัดไป แก้ไขฟังก์ชัน main เพื่อเรียกใช้ get_all_posts และ get_post :

 if option == 1: print('Listing posts...') await get_all_posts() elif option == 2: print('Retrieving a post...') id = input_number('Enter the post id: ') await get_post(id)

จากนั้นเรียกใช้แอพ:

 python app.py

จากนั้นคุณจะเห็นเมนูแอปพลิเคชัน:

การเริ่มต้นแอพ Python ที่เชื่อมต่อกับ WordPress
เมนูแอปพลิเคชัน Python

ลองใช้ตัวเลือกที่ 1 เพื่อดูรายการโพสต์ที่แอป Python ของคุณดึงมา และตัวเลือกที่ 2 เพื่อเลือกโพสต์:

ลองใช้ตัวเลือกที่ 1 เพื่อดูรายการโพสต์ที่แอป Python เรียกค้น และตัวเลือกที่ 2 เพื่อเลือกโพสต์
แอพ Python แสดงรายการโพสต์และโพสต์เดียวที่ผู้ใช้เลือก

การสร้างโพสต์ใน Code

ในการสร้างโพสต์ WordPress ใน Python ให้เริ่มต้นด้วยการเปิดไฟล์ wordpress_api_helper.py และเพิ่มฟังก์ชัน create_post :

ดิ้นรนกับการหยุดทำงานและปัญหา WordPress? Kinsta เป็นโซลูชันโฮสติ้งที่ออกแบบมาเพื่อช่วยคุณประหยัดเวลา! ตรวจสอบคุณสมบัติของเรา
 async def create_post(title, content): async with aiohttp.ClientSession(os.getenv("WEBSITE_URL")) as session: async with session.post( f"/wp-json/wp/v2/posts?content={content}&title={title}&status=publish" , auth=aiohttp.BasicAuth(user, password)) as response: print("Status:", response.status) text = await response.text() wp_post = json.loads(text) post_id = wp_post['id'] print(f'New post created with id: {post_id}')

รหัสนี้เรียกใช้ฟังก์ชันการ post ในวัตถุ session โดยส่ง auth การตรวจสอบสิทธิ์ข้าง URL ปลายทาง REST API อ auth เจ็กต์ตรวจสอบสิทธิ์ตอนนี้มีผู้ใช้ WordPress และรหัสผ่านที่คุณสร้างโดยใช้รหัสผ่านแอปพลิเคชัน ตอนนี้ เปิดไฟล์ app.py และเพิ่มโค้ดเพื่อนำเข้า create_post และเมนู:

 from wordpress_api_helper import get_all_posts, get_post, create_post menu_options = { 1: 'List Posts', 2: 'Retrieve a Post', 3: 'Create a Post' }

จากนั้นเพิ่มตัวเลือกเมนูที่สาม:

 elif option == 3: print('Creating a post...') title = input_text('Enter the post title: ') content = input_text('Enter the post content: ') await create_post(title, f"{content}")

จากนั้นเรียกใช้แอปและลองใช้ตัวเลือก 3 ส่งชื่อและเนื้อหาเพื่อสร้างโพสต์ใหม่ใน WordPress:

การสร้างโพสต์ WordPress ด้วย Python
แอพ Python แสดงโพสต์ WordPress ที่สร้างขึ้นใหม่

การเลือกตัวเลือก 1 อีกครั้งจะส่งคืน id และชื่อของโพสต์ที่เพิ่มใหม่:

ส่งคืน id และชื่อของโพสต์ที่เพิ่มใหม่
แอป Python ส่งคืนชื่อและรหัสของโพสต์ใหม่

คุณยังสามารถเปิดเว็บไซต์ WordPress ของคุณเพื่อดูโพสต์ใหม่:

โพสต์ที่สร้างขึ้นใหม่ในเบราว์เซอร์
รูปภาพเบราว์เซอร์ของโพสต์ WordPress ใหม่

กำลังอัปเดตโพสต์ในรหัส

เปิดไฟล์ wordpress_api_helper.py และเพิ่มฟังก์ชัน update_post :

 async def update_post(id, title, content): async with aiohttp.ClientSession(os.getenv("WEBSITE_URL")) as session: async with session.post( f"/wp-json/wp/v2/posts/{id}?content={content}&title={title}&status=publish" , auth=aiohttp.BasicAuth(user, password)) as response: print("Status:", response.status) text = await response.text() wp_post = json.loads(text) post_id = wp_post['id'] print(f'New post created with id: {post_id}')

จากนั้นเปิดไฟล์ app.py และเพิ่มรหัสเพื่อนำเข้า update_post และเมนู:

 from wordpress_api_helper import get_all_posts, get_post, create_post, update_post menu_options = { 1: 'List Posts', 2: 'Retrieve a Post', 3: 'Create a Post', 4: 'Update a Post' }

จากนั้น เพิ่มตัวเลือกเมนูที่สี่:

 elif option == 4: print('Updating a post...') id = input_number('Enter the post id: ') title = input_text('Enter the post title: ') content = input_text('Enter the post content: ') await update_post(id, title, f"{content}")

จากนั้นเปิดแอปและลองใช้ตัวเลือกที่ 4 โดยส่งรหัสโพสต์ ชื่อและเนื้อหาเพื่ออัปเดตโพสต์ที่มีอยู่

กำลังอัปเดตโพสต์ WordPress
แอพ Python แสดงเมนูที่อัปเดต

การเลือกตัวเลือก 2 และส่งรหัสโพสต์ที่อัปเดตจะส่งคืนรายละเอียดของโพสต์ที่เพิ่มใหม่:

การส่งคืนรายละเอียดของโพสต์ที่อัปเดตใหม่
แอพ Python แสดงโพสต์ที่อัปเดต

การลบโพสต์ในรหัส

คุณสามารถส่งรหัสโพสต์ไปยัง REST API เพื่อลบโพสต์

เปิดไฟล์ wordpress_api_helper.py และเพิ่มฟังก์ชัน delete_post :

 async def delete_post(id): async with aiohttp.ClientSession(os.getenv("WEBSITE_URL")) as session: async with session.delete( f"/wp-json/wp/v2/posts/{id}" , auth=aiohttp.BasicAuth(user, password)) as response: print("Status:", response.status) text = await response.text() wp_post = json.loads(text) post_id = wp_post['id'] print(f'Post with id {post_id} deleted successfully.')

ตอนนี้เปิดไฟล์ app.py และเพิ่มรหัสเพื่อนำเข้า delete_post และเมนู:

 from wordpress_api_helper import get_all_posts, get_post, create_post, update_post, delete_post menu_options = { 1: 'List Posts', 2: 'Retrieve a Post', 3: 'Create a Post', 4: 'Update a Post', 5: 'Delete a Post', }

จากนั้น เพิ่มตัวเลือกเมนูที่ห้า:

 elif option == 5: print('Deleting a post...') id = input_number('Enter the post id: ') await delete_post(id)

ตอนนี้ให้รันแอพแล้วลองตัวเลือก 5 ส่ง id เพื่อลบโพสต์ที่มีอยู่ใน WordPress:

การลบโพสต์ WordPress ด้วยแอพ Python
แอพ Python แสดงการลบโพสต์ที่เลือก

หมายเหตุ: โพสต์ที่ถูกลบอาจยังคงปรากฏขึ้นหากคุณเรียกใช้ตัวเลือก รายการโพสต์ :

โพสต์รายการแอป Python
แอพ Python แสดงรายการโพสต์ดั้งเดิม

หากต้องการยืนยันว่าคุณลบโพสต์แล้ว โปรดรอสักครู่แล้วลองใช้ตัวเลือก รายการโพสต์ อีกครั้ง และนั่นแหล่ะ!

สรุป

ขอบคุณ WordPress REST API และไลบรารีไคลเอนต์ HTTP ของ Python แอป Python และ WordPress สามารถทำงานร่วมกันและพูดคุยกันได้ ประโยชน์ของ REST API คือช่วยให้คุณสามารถใช้งาน WordPress ได้จากระยะไกลจากแอป Python โดยที่ภาษาอันทรงพลังของ Python ช่วยให้สามารถสร้างเนื้อหาอัตโนมัติที่เป็นไปตามโครงสร้างและความถี่ที่คุณต้องการ

DevKinsta ทำให้การสร้างและพัฒนาไซต์ WordPress ในพื้นที่ทำได้ง่ายและรวดเร็ว มีสภาพแวดล้อมในท้องถิ่นสำหรับการพัฒนาธีมและปลั๊กอินของ WordPress และนำเสนอโมเดลการปรับใช้ที่ง่ายขึ้นซึ่งได้รับความอนุเคราะห์จากโมเดลการติดตั้งแบบ Docker ที่มีในตัวเอง

ประสบการณ์ของคุณในการทำงานกับ Python และ WordPress คืออะไร?

เมื่อพร้อมที่จะขยายประสบการณ์นั้น คุณสามารถอ่านคู่มือฉบับสมบูรณ์สำหรับ WordPress REST API Basics เพื่อสำรวจความเป็นไปได้อื่นๆ