أصبح WordPress أكثر أنظمة إدارة المحتوى استخدامًا (CMS) نظرًا لواجهة برمجة التطبيقات (API). تعمل واجهة برمجة تطبيقات WordPress REST على تمكين WordPress من “التحدث” مع التطبيقات الأخرى المكتوبة بلغات مختلفة – بما في ذلك Python.
Python هي لغة برمجة قابلة للتوسيع ذات استخدامات متنوعة وبناء جملة يمكن قراءته من قبل الإنسان ، مما يجعلها أداة قوية لإدارة محتوى WordPress عن بُعد.
Here are some WordPress REST API use cases for your apps and كيفية تحميل الملفات إلى ووردبريس (مع الإضافات وبدونها)
how you can use Python to support them:
- استخدم القوالب المحددة مسبقًا لتمكين تطبيقك من تحويل البيانات الأولية إلى منشورات منسقة مع التفسيرات بسرعة.
- أنشئ تطبيقًا للمكتب الخلفي على Django و Python يعرض عروضًا محدودة الوقت لعملائك في كل مرة يحدث فيها خصم خاص بالعنصر أو حدث مبيعات.
- ادمج نصوص Python ليتم تشغيلها داخل موقع WordPress الخاص بك
سيساعدك هذا البرنامج التعليمي في إنشاء تطبيق بسيط لوحدة تحكم Python يتواصل مع وتنفيذ العمليات على WordPress REST API. كود المشروع الكامل متاح أيضا.
تثبيت وتكوين ووردبريس
أولاً ، دعنا نثبت ونشغل موقع WordPress محليًا على جهاز التطوير الخاص بك. هذه طريقة ممتازة لبدء استخدام WordPress حيث لا يتعين عليك إنشاء حساب أو شراء اسم مجال لاستضافة الويب.
قبل تثبيت WordPress محليًا ، يلزم تشغيل بعض المكونات على جهاز الكمبيوتر الخاص بك ، بما في ذلك خادم الويب Apache وقاعدة البيانات المحلية ولغة PHP التي تتم كتابة WordPress بها.
لحسن الحظ ، يمكننا استخدام DevKinsta ، وهي مجموعة تطوير WordPress محلية مجانية متاحة لجميع أنظمة التشغيل الرئيسية (ليس عليك أن تكون أحد عملاء Kinsta لاستخدامها).
DevKinsta متاح لأنظمة Windows و Mac و Linux ، ويقوم بتثبيت WordPress بالإضافة إلى جميع تبعياته على جهازك المحلي.
قبل تثبيت DevKinsta ، يجب أن يكون لديك Docker قيد التشغيل محليًا ، لذا قم بتنزيل Docker Engine وتثبيته إذا لم تكن قد قمت بذلك بعد.
بعد تثبيت Docker Desktop ، يمكنك تلقائيًا تنزيل الحزمة التي تناسب نظام التشغيل لديك.
عند تشغيل مثبّت DevKinsta ، يبدأ Docker في التهيئة على الفور:
بعد ذلك ، اختر موقع WordPress جديد من قائمة إنشاء موقع جديد :
الآن يتطلب منك مثبّت DevKinsta إنشاء بيانات اعتماد لحساب مسؤول WordPress:
بمجرد التثبيت ، يعد DevKinsta تطبيقًا قائمًا بذاته. يمكنك الآن الوصول إلى كل من موقع WordPress (عبر زر Open Site ) ولوحة معلومات مسؤول WordPress ( زر WP Admin ).
بعد ذلك ، تحتاج إلى تمكين SSL و HTTPS لموقع الويب الخاص بك. يؤدي ذلك إلى تحسين أمان موقع الويب الخاص بك من خلال شهادة SSL.
انتقل الآن إلى تطبيق DevKinsta وانقر على زر فتح الموقع . ستعرض علامة تبويب المتصفح الجديدة الصفحة الرئيسية لموقع WordPress الخاص بك:
هذه هي مدونة WordPress الخاصة بك ، حيث يمكنك البدء في الكتابة. ولكن لتمكين Python من الوصول إلى واجهة برمجة تطبيقات WordPress REST واستخدامها ، يجب علينا أولاً تهيئة مسؤول WordPress.
انقر الآن على زر WP Admin في تطبيق DevKinsta ، ثم قدم المستخدم وكلمة المرور للوصول إلى لوحة معلومات WordPress :
بمجرد تسجيل الدخول ، سترى لوحة تحكم WordPress :
يستخدم WordPress مصادقة ملفات تعريف الارتباط كطريقة قياسية. ولكن إذا كنت تريد التحكم فيه باستخدام واجهة برمجة تطبيقات REST ، فيجب عليك المصادقة باستخدام تقنية تمنح الوصول إلى واجهة برمجة تطبيقات WordPress REST.
لهذا ، ستستخدم كلمات مرور التطبيق. هذه سلاسل طويلة مكونة من 24 حرفًا ينشئها WordPress ويربطها بملف تعريف مستخدم لديه إذن لإدارة موقع الويب الخاص بك.
لاستخدام كلمات مرور التطبيقات ، انقر على قائمة البرنامج المساعد في لوحة التحكم ، ثم ابحث عن المكون الإضافي الذي يحمل نفس الاسم. ثم قم بتثبيت وتفعيل البرنامج المساعد لكلمات مرور التطبيقات:
لبدء إنشاء كلمة مرور التطبيق ، ابدأ بتوسيع قائمة المستخدمين والنقر فوق كل المستخدمين :
الآن ، انقر فوق تحرير أسفل اسم المستخدم المسؤول الخاص بك:
قم بالتمرير لأسفل في صفحة تحرير المستخدم وابحث عن قسم كلمات مرور التطبيق . هنا ، قم بتوفير اسم لكلمة مرور التطبيق ، والتي ستستخدمها لاحقًا لمصادقة طلبات تطبيق Python الخاصة بك واستهلاك REST API:
انقر فوق إضافة كلمة مرور جديدة للتطبيق حتى يتمكن WordPress من إنشاء كلمة مرور عشوائية مكونة من 24 حرفًا لك:
بعد ذلك ، انسخ كلمة المرور هذه واحفظها في مكان آمن لاستخدامها لاحقًا. تذكر أنك لن تتمكن من استرداد كلمة المرور هذه بمجرد إغلاق هذه الصفحة.
أخيرًا ، يجب عليك تكوين الروابط الثابتة. يتيح لك WordPress إنشاء بنية عنوان URL مخصصة للروابط الثابتة والمحفوظات. دعنا نغيره بحيث يمكن الوصول إلى منشور WordPress بعنوان ، على سبيل المثال ، “موقع WordPress الأول الخاص بك” من خلال عنوان URL البديهي https: //your-website.local: port / your-first-wordpress-website /. يجلب هذا النهج العديد من الفوائد ، بما في ذلك تحسين قابلية الاستخدام والجماليات.
لتكوين الروابط الثابتة ، وسّع قسم الإعدادات وانقر على قائمة الروابط الثابتة . هنا ، قم بتغيير الإعدادات العامة إلى اسم النشر :
يعد إعداد بنية الرابط الثابت باستخدام بنية اسم المنشور ضروريًا أيضًا لأنه سيسمح لنا باسترداد المنشورات لاحقًا في كود Python الخاص بنا باستخدام تنسيق JSON. وإلا ، فسيتم طرح خطأ في فك تشفير JSON.
كيفية التحكم في WordPress من Python
تمت كتابة WordPress بلغة PHP ، ولكنه يحتوي على واجهة برمجة تطبيقات REST تمكن لغات البرمجة والمواقع والتطبيقات الأخرى من استهلاك محتواها. إن عرض محتوى WordPress في بنية REST يجعله متاحًا بتنسيق JSON. لذلك ، يمكن أن تتكامل الخدمات الأخرى مع WordPress وتنفيذ عمليات الإنشاء والقراءة والتحديث والحذف (CRUD) دون الحاجة إلى تثبيت WordPress محلي.
بعد ذلك ، ستنشئ تطبيق Python بسيطًا لترى كيف يمكنك استخدام WordPress REST API لإنشاء واسترداد وتحديث وحذف المنشورات.
أنشئ دليلًا جديدًا لمشروع Python البسيط الجديد الخاص بك وقم بتسميته شيئًا مثل PythonWordPress
:
../PythonWordPress
الآن ، ستنشئ بيئة افتراضية لمشروعك ، مما يسمح له بالحفاظ على مجموعة مستقلة من حزم Python المثبتة ، وعزلها عن أدلة نظامك وتجنب تعارض الإصدارات. قم بإنشاء بيئة افتراضية عن طريق تنفيذ venv
الأمر:
python3 -m venv .venv
الآن ، قم بتشغيل أمر لتنشيط البيئة الافتراضية .venv . يختلف هذا الأمر حسب نظام التشغيل:
- شبابيك:
.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 أعلاه. توفر اللغات الحديثة بناء الجملة والأدوات التي تمكن البرمجة غير المتزامنة. يؤدي ذلك إلى زيادة استجابة التطبيق من خلال السماح للبرنامج بأداء المهام جنبًا إلى جنب مع عمليات مثل طلبات الويب وعمليات قاعدة البيانات وإدخال / إخراج القرص. تقدم Python asyncio كأساس لإطار البرمجة غير المتزامن الخاص بها ، ومكتبة aiohttp مبنية على رأس غير متزامن لتوفير وصول غير متزامن إلى عمليات عميل / خادم HTTP التي تم إجراؤها في 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
سترى بعد ذلك قائمة التطبيق:
جرب الآن الخيار 1 لعرض قائمة المنشورات التي يستردها تطبيق Python الخاص بك ، والخيار 2 لتحديد منشور:
إنشاء المشاركات في التعليمات البرمجية
لإنشاء منشور WordPress في Python ، ابدأ بفتح ملف wordpress_api_helper.py وأضف create_post
الوظيفة:
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:
سيؤدي تحديد الخيار 1 مرة أخرى إلى إرجاع المعرف وعنوان المنشور المضاف حديثًا:
يمكنك أيضًا فتح موقع 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 ، مرر معرف المنشور والعنوان والمحتوى لتحديث منشور موجود.
سيؤدي تحديد الخيار 2 وتمرير معرف المنشور المحدث إلى إرجاع تفاصيل المنشور المضاف حديثًا:
حذف المشاركات في الكود
يمكنك تمرير معرف المنشور إلى 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 ، قم بتمرير معرف لحذف المنشور الحالي في WordPress:
ملاحظة: قد يستمر ظهور المنشور المحذوف إذا قمت بتشغيل خيار List Posts :
لتأكيد حذف المنشور ، انتظر بضع ثوان وجرب خيار قائمة المنشورات مرة أخرى. وهذا كل شيء!
ملخص
بفضل واجهة برمجة تطبيقات WordPress REST ومكتبات عميل HTTP في Python ، يمكن لتطبيقات Python و WordPress التعاون والتحدث مع بعضهما البعض. تتمثل فائدة واجهة برمجة تطبيقات REST في أنها تتيح لك تشغيل WordPress عن بُعد من تطبيق Python ، حيث تتيح لغة Python القوية إنشاء محتوى آليًا يتبع الهيكل والتردد المطلوبين.
يجعل DevKinsta إنشاء موقع WordPress محلي وتطويره أمرًا سريعًا وسهلاً. إنه يوفر بيئة محلية لتطوير سمات WordPress والإضافات ويقدم نموذج نشر مبسطًا من نموذج التثبيت القائم على Docker والمحتوى ذاتيًا.
ما هي تجربتك في العمل مع Python و WordPress؟
عندما تكون مستعدًا للتوسع في هذه التجربة ، يمكنك قراءة الدليل الكامل لأساسيات WordPress REST API لاستكشاف الاحتمالات الأخرى.
وفر الوقت والتكاليف وحقق أقصى قدر من أداء الموقع من خلال:
- مساعدة فورية من خبراء استضافة WordPress ، 24/7.
- تكامل Cloudflare Enterprise.
- يصل الجمهور العالمي إلى 35 مركز بيانات حول العالم.
- التحسين من خلال مراقبة أداء التطبيقات المضمنة لدينا.
كل ذلك وأكثر من ذلك بكثير ، في خطة واحدة بدون عقود طويلة الأجل ، وعمليات الترحيل المدعومة ، وضمان استرداد الأموال لمدة 30 يومًا. تحقق من خططنا أو تحدث إلى قسم المبيعات للعثور على الخطة المناسبة لك.
xnxx,
xvideos,
porn,
porn,
xnxx,
Phim sex,
mp3 download,
sex 4K,
Straka Pga,
gay teen porn,
Hentai haven,
free Hentai,
xnxx,
xvideos,
porn,
porn,
xnxx,
Phim sex,
mp3 download,
sex 4K,
Straka Pga,
gay teen porn,
Hentai haven,
free Hentai,
اكتشاف المزيد من إشراق العالم
اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.