7 days of WordPress plugins, themes & templates - for free!* Unlimited asset downloads! Start 7-Day Free Trial
Advertisement
  1. Code
  2. Creative Coding

نظرة على واجهة برمجة تطبيقات HTTP WordPress: مثال عملي على wp_remote_get

Scroll to top
Read Time: 12 mins
This post is part of a series called A Look at the WordPress HTTP API.
A Look at the WordPress HTTP API: A Brief Survey of wp_remote_get
A Look at the WordPress HTTP API: wp_remote_get - the Response

Arabic (العربية/عربي) translation by Mohammed Ali (you can also view the original English article)

في المقالة الأخيرة في هذه السلسلة ، ألقينا نظرة على وظائف PHP المتاحة لتقديم الطلبات عن بُعد.

على وجه التحديد ، قمنا باستعراض :

  • file_get_contents
  • cURL

وناقشنا أيضًا وظيفة wp_remote_get.

في هذه المقالة ، سنعمل على تشغيل wp_remote_get. هذه الوظيفة جزء من HTTP API - للاستخدام العملي باستخدامها لاسترداد الأمرين التاليين:

  1. عدد المتابعين لدينا على تويتر
  2. أحدث تغريدة لدينا

الشيء الجميل هو أننا لن نحتاج إلى استخدام أي آليات OAuth أو آليات المصادقة ، وسنحتاج فقط إلى الاستفادة من ردود Twitter ووظائف JSON الخاصة بـ PHP.

لذلك في هذه المقالة ، سنلقي نظرة عملية على كيفية القيام بذلك بالضبط ، ثم سننهي السلسلة التي تراجع كل المعلومات التي تُرجعها wp_remote_get حتى نعرف كيفية التعامل معها بشكل صحيح في العمل المستقبلي .


إعداد دليل البرنامج المساعد

كما هو الحال مع جميع الإضافات ، فإن أول ما نحتاج إلى فعله هو إنشاء دليل في دليل wp-content / plugins. لأغراض هذا العرض التوضيحي ، سوف نتصل بالتطبيق الإضافي على Twitter plugin.

وبالتالي ، دعونا تسمية دليل البرنامج المساعد twitter-demo وملف البرنامج المساعد المرتبط twitter-demo.php.

Twitter DemoTwitter DemoTwitter Demo

بعد ذلك ، نحتاج إلى المضي قدمًا وإخراج رأس المكون الإضافي حتى يتمكن WordPress من اكتشاف ملف المكون الإضافي ، لذلك دعونا نفعل ذلك الآن.


الخروج من المساعد

أولاً ، ضع الكود التالي في رأس ملف twitter-demo.php:

لاحظ أننا لن نقوم بتدويل هذا البرنامج المساعد. لقد غطينا هذا الموضوع في منشور آخر وهو أمر خارج عن نطاق ما نحاول القيام به في هذه المقالة.

في هذه المرحلة ، يجب أن تكون قادرًا على رؤية المكوّن الإضافي معروضًا في لوحة معلومات البرنامج المساعد لتثبيت WordPress. يمكنك تفعيله. ومع ذلك ، فإنه لن يفعل أي شيء في الواقع.

على الأقل ليس بعد.


جلب المساعد إلى الحياة

كما هو الحال مع بقية الإضافات التجريبية التي أنشرها هنا ، أعتقد أنه من المهم أولاً تحديد الخطوط العريضة لما سيفعله البرنامج المساعد قبل أن نصل إلى الترميز.

على هذا النحو ، إليك ما يمكن أن نتوقعه:

  • في أسفل كل مشاركة ، سنقوم بعرض إشعار صغير نصه: لدي X عدد المتابعين على Twitter. كانت آخر تغريدة لي هي Y.
  • سنحرص على القيام بذلك فقط في صفحة المنشورات الفردية بحيث لا يتم عرضها على الفهرس أو صفحات الأرشيف الرئيسية.

من المؤكد أنه من المثير للاشمئزاز عرض هذا في أسفل المنشور ، لكن تذكر أن الغرض من هذا المكون الإضافي هو توضيح كيفية استخدام wp_remote_get ، وكيفية تحليل استجابة من Twitter ، وكيفية عرضها.

نحن أقل اهتمامًا بكثير بمكان عرض المحتوى.

لذلك ، دعونا نمضي قدمًا ونبطل الفصل الذي سيوفر هذه الوظيفة.

1. كعب الروتين خارج فئة العرض التوضيحي لتويتر

قبل القيام بأي شيء ، دعنا نكشف عن الفصل الذي سنستخدمه لتقديم الطلب إلى Twitter. لقد قمت بتضمين كافة التعليمات البرمجية أدناه بالإضافة إلى وثائق لكل سمة وطريقة.

لاحظ أننا سنقوم بملء بقية هذه الأساليب كما نذهب ، وسأحصل أيضًا على شفرة المصدر الكاملة للمكون الإضافي في نهاية المقالة.

قبل أن نذهب إلى أبعد من ذلك ، أود أن أشير إلى أننا سنستخدم نموذج Singleton لهذا البرنامج المساعد. لقد قمنا بتغطية نمط التصميم هذا في مقال سابق ، وعلى الرغم من أن ميزاته تقع خارج نطاق هذه المقالة ، إلا أنني أوصي بقراءة المقال المرتبط للتأكد من أنك تعرف تمامًا سبب قيامنا بإعداد المكون الإضافي الخاص بنا بهذه الطريقة.

بعد ذلك ، دعونا نلقي نظرة على الوظائف التي وضعناها حتى نعرف بالضبط أين نتجه:

  • المنشئ هو المكان الذي سنقوم بإضافة إجراء لإلحاق معلومات Twitter الخاصة بنا إلى منشور واحد
  • سيتم استخدام display_twitter_information لعرض الرسالة في أسفل المنشور
  • make_twitter_request سيطلب فعليًا ويعيد البيانات من Twitter (أو لاغٍ إذا فشل الطلب)
  • سيعيد get_follower_count عدد المتابعين للمستخدم المحدد (أو -1 في حالة وجود مشكلة)
  • get_last_tweet سيعيد آخر تغريدة من المستخدم أو رسالة في حالة فشل المكون الإضافي

واضح بشكل كافي؟ في هذه المرحلة ، دعونا نعمل على طلب المعلومات من Twitter حتى نتمكن من معالجتها.

2. طلب البيانات من تويتر

أولاً ، دعنا نشر وظيفة make_twitter_request بالكود التالي. لاحظ أنني سوف أشرح ذلك بعد الكود:

في السطر الأول من الشفرة ، نستفيد من wp_remote_get لتقديم طلبنا. لاحظ أننا نستخدم معلمة اسم المستخدم $ لاسترداد موجز JSON للمستخدم. لاحظ مدى بساطة تقديم طلب باستخدام وظيفة wp_remote_get.

يتم تمرير اسم المستخدم هذا من وظيفة مختلفة سننظر إليها للحظات.

بعد ذلك ، لاحظ أننا نختتم التعليمات البرمجية في try/catch. وذلك لأن الطلب على Twitter قد يفشل. إذا لم ينجح ، فسنستخدم وظيفة json_decode الخاصة بـ PHP لفك تشفير نص الاستجابة ؛ خلاف ذلك ، سنقوم بتعيين استجابة مساوية ل null

وهذا سيجعل من السهل الشرطي في وظيفة الدعوة.

قبل أن نذهب إلى أبعد من ذلك ، من المهم أن نلاحظ أن هناك الوجبات الجاهزة الدقيقة هنا: لاحظ أننا نقوم بفك تشفير المفتاح "الأساسي" الخاص بمصفوفة استجابة $ التي يتم إرجاعها. بالنسبة لأولئك الذين يشعرون بالفضول تجاه هذا الأمر ، سنلقي نظرة مفصلة على الاستجابة التي تأتي عند استخدام wp_remote_get في المقالة التالية.

في الوقت الحالي ، لاحظ ببساطة أن فهرس نص صفيف استجابة $ ما هو إلا جزء واحد من المعلومات المتوفرة لدينا.

3. دعوة إلى وظيفة الطلب

الآن وقد حددنا الوظيفة المسؤولة عن تقديم طلب إلى Twitter ، دعونا نحدد الوظيفة التي ستطلب بيانات من Twitter ثم نعرضها أسفل محتوى المنشور.

مرة أخرى ، إليك الرمز الذي سأشرح بعده بالضبط ما الذي تفعله:

أولاً ، اعلم أن هذه هي أطول وظيفة في البرنامج المساعد بأكمله. إذا تمكنت من التدقيق في هذا الأمر ، فأنت على ما يرام.

تذكر: هذه الوظيفة هي ما سيتم استدعاؤه أثناء إجراء_المحتوى الذي سيتم تحديده في مُنشئنا بمجرد اكتمال المكون الإضافي.

على هذا النحو ، تتحقق الوظيفة أولاً لمعرفة ما إذا كنا في منشور واحد. إذا لم يكن كذلك ، فسوف يعرض المحتوى ببساطة ؛ خلاف ذلك ، فإنه يقوم بما يلي:

  • محاولات لتقديم طلب إلى Twitter
  • إذا فشل الطلب ، فسيعرض رسالة توضح ذلك
  • خلاف ذلك ، إذا كان سيتم طباعة رسالة تعرض عدد المتابعين وآخر تغريدة تغادر الشخص
  • سيتم إلحاق الرسالة إلى محتوى المنشور

ملاحظة مهمة: في هذه الوظيفة ، تحدد اسم المستخدم الذي تريد استرجاع المعلومات من أجله. على سبيل المثال ، لاحظ أنني أحاول استرداد معلومات لـWPTuts من خلال الاتصال بـ $ this-> make_twitter_request ('wptuts').

4. قراءة المعلومات

في هذه المرحلة ، نحن مستعدون لقراءة المعلومات ولسلسلة السلاسل في رسالتنا لعرضها على المستخدم. سنفعل ذلك باستخدام طريقة get_follower_count و get_last_tweet.

نظرًا لأن هذه الطرق متشابهة إلى حد كبير ، فسنلقي نظرة على كلٍّ منهما ثم سأشرحها بعد الكود:

لاحظ أن الوظيفتين متشابهتان في أنهما يقبلان بيانات json $ السابقة في المكوّن الإضافي. بعد ذلك ، يستخدم كلاهما عامل تشغيل ثلاثي لتحديد ما إذا كان يجب أن يعيدوا النص المطلوب أو رسالة افتراضية.

بمعنى آخر ، إذا كنا نتطلع لعرض عدد المتابعين وكانت القيمة أكبر من -1 ، فإننا نعلم أن لدينا قيمة لعرضها ، لذلك سنقوم بإعادتها ؛ وإلا ، فسنرجع -1 كمؤشر على أن القيمة غير مضبوطة بشكل صحيح.

هذا يسمح لنا بالكود بشكل دفاعي ضد أي شيء قد يحدث خطأ عند معالجة البيانات.


التغريد تجريبي البرنامج المساعد

كما وعدت ، إليك شفرة المصدر كاملة مع وثائق لتطابق:

انها في الواقع بسيطة نسبيا ، أليس كذلك؟ في الواقع ، هناك ما يقرب من العديد من تعليقات الكود كما توجد سطور من الكود الفعلي لذلك فإن البرنامج المساعد نفسه صغير جدًا.


الاستنتاج

يوضح هذا العرض التوضيحي مدى سهولة استخدام wp_remote_get للتفاعل مع خدمات الجهات الخارجية ، وتحليل ردها ، ودمجها في مكون إضافي. منحت ، هذه عظام عارية للغاية ، لكنها ما زالت تثبت هذا المفهوم.

في المقالة التالية في هذا الجزء من السلسلة ، سنلقي نظرة على جميع المعلومات التي يمكننا نقلها إلى wp_remote_get لمعرفة مدى مرونة هذه الطريقة. بعد ذلك ، سوف نلقي نظرة مفصلة على بيانات الاستجابة حتى نتمكن من كتابة طلبات أكثر تعقيدًا وكتابة المزيد من التعليمات البرمجية الدفاعية ، بشكل أكثر دفاعية.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.