Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. WordPress
Code

إضافة hooks مخصصة في وورد: مرشحات مخصصة

by
Difficulty:BeginnerLength:LongLanguages:
This post is part of a series called Adding Custom Hooks in WordPress.
Adding Custom Hooks in WordPress: Custom Actions

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

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

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

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

قبل البدء في استخدام الخطافات ، سأقدم تحديثًا سريعًا لما تمت مناقشته في المقالة السابقة ، ثم سنتقدم من هناك.

مع ذلك ، دعنا نبدأ.

تحديث سريع

في المقالة السابقة ، رأينا كيف أن الخطافات هي تطبيق لنمط التصميم القائم على الحدث. على وجه الخصوص ، قمنا بتعريفه على النحو التالي:

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

وبعد ذلك ، استعرضنا بدقة كيفية تنفيذ هذا النمط في WordPress. تحدثنا عن كيف يمكننا الاستفادة منه ، ثم تحدثنا عن كيف يمكننا تنفيذ عملنا.

لقد أدركنا تمييزًا دقيقًا أيضًا:

تهدف الإجراءات إلى العمل مع الوظائف ، وتهدف الفلاتر إلى العمل مع البيانات.

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

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

قبل أن نفعل ذلك، نحن بحاجة إلى التأكد من أن لدينا بيئتنا التنمية المحلية إعداد واستعداد للذهاب.

 الحصول علىا بدء

تذكر من المقالة السابقة أن بيئة التطوير المحلية يجب أن تتكون مما يلي:

  • ووردبرس 4.5.2
  • IDE المفضل لديك
  • خادم الويب
  • نسخة من PHP
  • قاعدة البيانات

بالنسبة للكثيرين ، يمكن تثبيت Apache و PHP و MySQL بسهولة. إذا كنت أكثر تقدمًا ، فقد تستخدم شيئًا مثل Nginx وقاعدة بيانات بديلة. إذا كان هذا هو الحال ، فلا بأس ، ولكن لأغراض هذا البرنامج التعليمي أفترض أن لديك السابق.

وإذا لم يكن لديك أي شيء من هذا الإعداد ، فلا تقلق: لقد قمنا بتغطيتك. سيوفر لك البرنامج التعليمي المرتبط كل ما تحتاجه لبدء العمل مع WordPress على جهازك المحلي.

بمجرد إعدادك ، سنكون جاهزين للمتابعة.

فهم مرشحات وورد

يوفر WordPress Codex مجموعة شاملة من الموارد لأولئك الذين يتطلعون إلى تعلم كل شيء عن المرشحات. كما ذكرنا ، فإنه يحدد الفلاتر على النحو التالي:

تختلف الفلاتر المخصصة عن الإجراءات المخصصة نظرًا لأن الإجراءات المخصصة تسمح لك بإضافة شفرة أو إزالتها من الإجراءات الحالية. بينما تسمح لك المرشحات المخصصة باستبدال بيانات محددة (مثل المتغير) الموجودة في إجراء موجود.

ولكن إذا كنت تبحث عن قائمة كاملة من الفلاتر المتاحة في WordPress ، فاحرص على الإشارة إلى (والعلامة المرجعية) هذه الصفحة في الدستور. لديها ما يقرب من 20 ثانية من الفلاتر ، العديد منها مرتبط بصفحات التوثيق الخاصة بها.

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

كلمة عن الأولوية والمعلمات

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

خذ على سبيل المثال ، السطر التالي من التعليمات البرمجية:

هذا يخبرنا بأربعة أشياء:

  1. اسم الفلتر الذي ندخله
  2. اسم الوظيفة التي يجب استدعاؤها
  3. أولوية عندما يجب استدعاء الدالة
  4. كم معلمات يجب أن تقبلها الوظيفة

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

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

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

العمل مع مرشحات

لبدء العمل مع المرشحات ، دعونا نمضي قدمًا وننشئ ملفنا الخاص في جذر دليل twentysixteen. سنسمي الملف tutsplus-filters.php. ثم ، في functions.php في twentysixteen ، سنقوم بإضافة السطر التالي من التعليمات البرمجية:

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

تصفية محتوى المشاركة

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

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

1. تسجيل لدينا مرشح

لتسجيل الفلتر الخاص بنا ، نحتاج إلى معلومتين:

  1. اسم المرشح الذي سنقوم بتثبيت وظيفتنا
  2. وظيفة ستكون مسؤولة عن تصفية البيانات

وبما أننا سنجري تعديلًا على محتوى المشاركات ، فيمكننا الاستفادة من فلتر the_content. جوهر هذه الوظيفة هو كما يلي:

  • فإنه يقبل وسيطة واحدة ، محتوى النشر ، يسمح لنا بتعديله ، ومن ثم إرجاعه إلى المتصل

في هذه الحالة ، يقوم WordPress بتمرير محتوى المشاركة إلى الوظيفة ، ومن ثم تقوم الدالة بإرجاع البيانات بعد إكمال عملها.

دعونا تسمية الدالة المخصصة لدينا tutsplus_the_content ثم تسجيله مع WordPress.

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

2. تعديل المحتوى

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

  1. تأكد من عرض المنشور في عرض منشور واحد
  2. إضافة رسالة في الجزء العلوي من المنشور تشرح أنه يتم تغيير محتوى المشاركة

إنه ليس الاستخدام الأكثر عملية للمرشح ، ولكنه سيعطيك فكرة عن كيفية تعديل الوظيفة.

إليك ما ينبغي أن يكون عليه الرمز. انتبه إلى تعليقات الكود ، أيضًا:

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

هذه رسالة مخصصة تم إنشاؤها بواسطة وظيفة مدمن مخدرات.

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

لتنفيذ ذلك ، سنستخدم الشفرة التالية:

قم بتطبيق هذا الرمز وحفظه ثم قم بزيارة أي منشور في تثبيت WordPress الخاص بك.

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

في ما يلي الشكل النهائي للنتيجة:

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

تحديد مرشحات مخصصة

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

ولكن ماذا لو أردنا إنشاء فلتر مخصص خاص بنا؟ ربما نريد إنشاء فلتر سيؤدي إلى تقليل كل النص في المشاركة؟ أو ربما نرغب في إنشاء فلتر سيؤدي إلى إزالة جميع أحرف العلة من مشاركة؟

فهم apply_filters

هذا هو المكان الذي بدأنا فيه الاهتمام في apply_filters. هذه الوظيفة المحددة هي تلك التي تقبل الوسيطتين:

  1. علامة تحدد اسم خطاف الفلتر
  2. قيمة تشير إلى القيمة التي يتم تطبيق الفلاتر عليها

إذا كنت تنظر إلى مثال على ، get_the_content ، in WordPress core، فإنك ستلاحظ أنه يمرر القيمة المحددة عبر the_content_more_link عبر apply_filters.

وهذا مفيد للفهم ، ولكن كيف نحدد الفلاتر المخصصة الخاصة بنا بحيث يمكن للآخرين الاتصال بـ apply_filters على الوظائف التي قمنا بتطويرها؟

إضافة مرشحاتنا الخاصة

إضافة المرشحات الخاصة بنا أمر سهل. نحتاج إلى تحديد نفس الأشياء الأربعة التي ذكرناها أعلاه:

  1. اسم المرشح
  2. الوظيفة التي يجب أن يتصل بها المرشح
  3. أولوية الوظيفة
  4. عدد الحجج التي يجب أن تقبلها

لنبدأ بمثال بسيط.

كل شيء صغير

للتأكد من أن محتوى المشاركة بالكامل هو حالة صغيرة.

أولاً ، نريد تعريف الفلتر بأولوية 10. نحن نعلم أنه سيقبل فقط حجة واحدة ، المحتوى ، لذا سنمرر الرقم 1 عند إضافة فلترنا:

بعد ذلك ، سنقوم بتعريف هيئة وظيفة بسيطة تستخدم وظيفة strtolower في PHP لتقليل القيمة التي تم تمريرها إليها ، وسنقوم بإرجاعها.

ستبدو النسخة النهائية من الشفرة كما يلي:

سهل بما فيه الكفاية لفهم ، أليس كذلك؟ دعونا نلقي نظرة على مثال آخر يعتمد على بعض الوظائف التي قمنا بكتابتها بالفعل.

قم بإزالة كل حروف العلة

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

نظرًا لأننا رأينا كيفية إضافة فلتر خاص بنا ، وتحديد أولوية ، وتحديد عدد الحجج التي يجب أن تقبلها ، وتنفيذ وظيفة ، لن أضيع الوقت بتفاصيل تافهة.

إليك الفلتر الذي يطلق عليه كل شيء بمفرده:

ثم هذه هي الطريقة التي يمكنك من خلالها تسميتها من داخل الخطاف الأولي.

ندعوهم جميعا

أخيرًا ، من الممكن الاتصال بـ apply_filters عدة مرات:

لاحظ أن هذا يحقق النتيجة نفسها كما في الحالات السابقة ، ولكنه يفعل ذلك بتكثيفها في سطر واحد من التعليمات البرمجية. هناك طرق أخرى يمكن كتابتها أيضًا ، ولكن الغرض من هذا البرنامج التعليمي هو تثقيفك حول كيفية كتابة الفلاتر الخاصة بك وكيفية الاستفادة من تطبيق_الفلاتر في عملك.

خاتمة

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

نظام الخطاف هو واحد من أقوى جوانب WordPress للمطورين ، لذلك من المهم أن تصبح على دراية به. عند القيام بذلك ، لن تتمكن فقط من التلاعب بالسلوك والبيانات التي يوفرها WordPress ، ولكنك قادر على تحديد خطافاتك الخاصة التي يمكن لمطوري البرامج الآخرين استخدامها خلال التعليمات البرمجية الخاصة بهم.

لا تتردد في الاستمرار في اللعب باستخدام شفرة المصدر التي تم توفيرها في كل من هذه البرامج التعليمية.

أخيرًا ، إذا كنت تبحث عن أدوات مساعدة أخرى لمساعدتك في بناء مجموعة أدواتك المتزايدة لـ WordPress أو لتدريس التعليمات البرمجية وتصبح أكثر دراية في WordPress ، فلا تنسى أن ترى ما لدينا في سوق Envato.

تذكر ، يمكنك التقاط جميع الدورات التدريبية والبرامج التعليمية على صفحة ملفي الشخصي ، ويمكنك متابعتي على مدونتي و/أو Twitter على tommcfarlin@ حيث أتحدث عن ممارسات تطوير البرمجيات المختلفة وكيف يمكننا توظيفها في WordPress.

لا تتردد في ترك أي أسئلة أو تعليقات في الخلاصة أدناه ، وسأحاول الرد على كل منها.

موارد ذات الصلة

Advertisement
Advertisement
Advertisement
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.