كيفية استخدام السنانير عمل وورد في تخصيص الموضوع
توفر السمات الفرعية لـ WordPress طريقة سهلة نسبيًا لتخصيص مظهر وإحساس المظهر. إذا لم توفر لك خيارات السمة خيارات تصميم مناسبة ، يمكنك فقط إضافة قاعدة جديدة إلى ملف ورقة أنماط السمة الافتراضية يسمى style.css. ولكن ماذا يحدث عندما تريد أيضا تعديل وظيفة السمة? هذه هي إحدى الحالات التي تأتي فيها إجراءات WordPress إلى مساعدتكم.
أصبح WordPress مشهورًا جدًا بسبب التخصيص العالي. يتم تحميل WordPress Core بسنانير مختلفة تمكن المطورين من تعديل أو تحسين الوظيفة الافتراضية. علاوة على ذلك ، يُسمح لنا بالتضمين السنانير المخصصة في الموضوعات لدينا والإضافات ل ساعد المطورين الآخرين على ضبط الكود بسهولة حسب احتياجاتهم.
حول وورد هوكس
خطاطيف WordPress تعمل بشكل مشابه إلى حد ما لخطافات الحياة الحقيقية ، بمعنى أنه يمكنك التقاط الأسماك التي تريدها في المكان الصحيح إذا كنت تستخدمها بشكل صحيح.
يمكنك إزالة وظيفة اشتعلت (على سبيل المثال ، يمكنك إزالة شريط إدارة WordPress للمستخدمين ذوي المستوى المنخفض) ، يمكنك ذلك اتركها سليمة و تعزيزه من خلال وظيفتك الخاصة (على سبيل المثال ، يمكنك إضافة المزيد من القوائم أو مناطق عنصر واجهة المستخدم إلى سمة) ، أو يمكنك ذلك تجاوزه (على سبيل المثال ، يمكنك تعديل سلوك الوظيفة الأساسية).
هناك نوعان مختلفان من السنانير في WordPress: أفعال و مرشحات. في هذا المنشور سوف نلقي نظرة على كيف يمكننا ذلك الاستفادة من السنانير العمل في تخصيص الموضوع.
كيف وورد هوكس العمل
لاستخدام لغة بسيطة جدا, أفعال تشير إلى أن حدث شيء ما خلال دورة حياة صفحة ووردبريس: تم تحميل أجزاء معينة من الموقع ، وتم إعداد خيارات أو إعدادات معينة ، وتم تهيئة المكونات الإضافية أو عناصر واجهة المستخدم ، وهكذا.
مرشحات تختلف عن أفعال في طبيعتها. وهي تستخدم ل تمرير البيانات من خلال, و تعديل ، إدارة أو اعترض قبل تقديمه إلى الشاشة أو حفظ بيانات المستخدم في قاعدة البيانات.
في كل معلم هام من دورة حياة صفحة ووردبريس ، هناك إما عمل أو منقي ربط التي نستطيع أضف الكود المخصص لدينا لتعديل السلوك الافتراضي لاحتياجاتنا.
تعتمد بعض الإجراءات وعوامل التصفية التي يتم تشغيلها أثناء طلب ما على الصفحة التي طلبها وكيل المستخدم: على سبيل المثال ، تتوفر في ربط طلب واحد المنشورات المتعلقة منشورات واحدة ، ولكن السنانير المتعلقة بأجزاء أخرى من الموقع (مثل منطقة المسؤول) لا.
البحث عن عمل هوكس
يوفر مرجع الإجراء الخاص ببرامج WordPress Codex نظرة عامة مفصلة على الإجراءات التي يتم تنفيذها من خلال طلبات مختلفة. الشيء المهم هو أننا إذا أردنا إنجاز مهمة نحتاج إليها ربط في المكان المناسب, ليس قبله أو بعده ، وإلا فلن يكتمل الإجراء.
لذلك على سبيل المثال إذا كنا نريد أضف رمز Google Analytics الخاص بنا إلى الموقع نحتاج إلى ربط عملنا مباشرة قبل تحميل تذييل الصفحة.
إذا تحدثنا عن تخصيص النسق ، فيمكن أن تأتي خطافات الإجراءات من مكانين مختلفين: من وورد الأساسية و الموضوع نفسه. هناك سمات لا تحتوي على روابط على الإطلاق ، لكن آخرين يوفرون للمطورين بعضًا أو كثيرًا - إنه دائمًا اختيار مؤلف السمة. يحتوي Twenty Fifteen Theme الافتراضي على ربط عمل واحد فقط لتخصيص التذييل تحت اسم "twentyfifteen_credits".
إذا كنت ترغب في تصفح الكود المصدري ، يمكنك أيضًا العثور على روابط الإجراءات بسهولة. تضاف خطافات التصرف إلى الكود مع وظيفة do_action () WordPress.
إذا قمت بإجراء بحث سريع عن التعبير "do_action" في محرر كود أكثر تقدماً - مثلما فعلت في Eclipse أدناه - يمكنك رؤية قائمة حول المواقع التي يمكنك فيها ربط وظائفك المخصصة في جوهرها. لقد بحثت في / الفسفور الابيض بين يتضمن / المجلد ، ولكن يمكنك أيضًا تشغيل بحث عن / الفسفور الابيض بين المشرف / المجلد الذي يحتوي على روابط الإجراءات المرتبطة بلوحة معلومات WordPress (منطقة المسؤول).
الشيء الجيد هو أن أسماء خطافات التصرفات عادة ما تكون غير واضحة المعالم ، لكن هناك عادة تعليق لطيف داخل الكود يمكن أن يوفر لك مزيدًا من المعرفة ما إذا كان ربط إجراء معين مفيدًا للسبب الذي تريد استخدامه من أجله.
على سبيل المثال ، التعليق على الكود قبل ربط الإجراء "widgets_init" يقول ذلك “حرائق بعد تسجيل جميع أدوات WordPress الافتراضية”. إذا ألقيت نظرة خاطفة على الكود قبل ربط هذا الإجراء ، فيمكنك العثور على جميع التهيئة الافتراضية لعناصر واجهة برمجة التطبيقات قبلها - لذلك يمكنك أن تتأكد من أن التعليق لم يكن موجودًا ، وإذا كنت ترغب في تسجيل عنصر واجهة المستخدم المخصص الخاص بك ، هذا سيكون المكان الصحيح.
في كثير من الحالات ، يزودنا الكود المصدري بمزيد من المعلومات أكثر من الدستور الغذائي ، لذلك قد يكون من الجيد تعلم كيفية التنقل فيه بسرعة..
إضافة الإجراءات الخاصة بك
عندما تريد إضافة الإجراء الخاص بك ، فأنت بحاجة إلى إنشاء وظيفة مخصصة و ربط هذه الوظيفة مع ربط عمل معين باستخدام وظيفة WordPress add_action (). الإجراءات المخصصة المضافة مع وظيفة add_action () عادة ما تكون أثار على الفور عندما يستدعي النواة وظيفة do_action () المناسبة.
دعنا نرى مثال بسيط.
كيفية العثور على العمل هوك تحتاج
لنفترض أنك تريد إضافة فافيكون مخصص إلى موقعك. أولاً ، تحتاج إلى العثور على ربط الإجراء الصحيح الذي يمكنك ربط وظائفك به.
لنفكر. إذا كنت ترغب في إضافة فافيكون إلى صفحة HTML عادي حيث يمكنك وضعه؟ بالطبع ، تحتاج إلى وضعه داخل
مقطع من ملف HTML مع الترميز التالي:لذلك يجب أن يكون ربط العمل الذي تحتاجه المتعلقة تحميل الجزء.
(1) افتح مرجع الإجراء ، وانظر ما تقدمه. نحن محظوظون ، كما لو كنا نتصفح الإجراءات ، يمكننا فقط العثور على واحد ، wp_head ، بناءً على اسمه لديه إمكانية ربطه بتحميل
الجزء.(2) بالتأكيد ، هيا بنا تحقق من الوثائق في ووردبريس Codex. تنصح هيئة الدستور الغذائي بذلك “يمكنك استخدام هذا الخطاف عن طريق جعل إخراج صدى وظيفتك في المتصفح”, حتى الآن يبدو أن يكون مثاليا بالنسبة لنا. ولكن دعونا التحقق من ذلك في شفرة المصدر.
(3) بما أن هذا الخطاف لا يتعلق بمنطقة المشرف ، فسنحتاج إلى تشغيل بحثنا في / الفسفور الابيض بين يتضمن / مجلد. إذا بحثنا عن كلمة "wp-head" ، فسوف نحصل على العديد من النتائج لأن هذا الإجراء المحدد يستخدم بواسطة WP Core عدة مرات.
نحتاج إلى البحث عن المكان الذي يتم فيه تعريفه ، لذا ابحث عن التعبير do_action ('wp_head'. لاحظ أننا لم ننهِ الأقواس ، حيث لا يمكننا التأكد بعد إذا كان هذا الإجراء يحتوي على معلمات أم لا.
إرجاع Eclipse نتيجة واحدة فقط يمكن العثور عليها داخل /wp-includes/general-template.php ملف. التعليق قبل تعريف ربط الإجراء يقول ذلك “يطبع البرامج النصية أو البيانات في علامة الرأس في النهاية الأمامية”, حتى الآن يمكننا أن نكون متأكدين من ذلك wp_head هو ربط العمل الذي نحتاجه.
التحقق من المعلمات
عند إضافة الإجراءات الخاصة بك ، عليك أيضًا التأكد من أن الخطاف الذي تريد استخدامه يأخذ معلمات أم لا. يمكنك معرفة ذلك بسهولة من خلال النظر في وظيفة do_action ().
بناء جملة الدالة do_action () هو ما يلي:
do_action ('name_of_action' [، $ parameter1 ، $ parameter2 ، ...])
مطلوب اسم الإجراء فقط ، والمعلمات اختيارية. إذا وجدت وسيطات في استدعاء الدالة do_action () ذي الصلة ، فستحتاج إلى تضمينها في إعلان الوظيفة المخصصة التي تنشئها.
إذا لم تجد أيًا ، فيجب أن تعمل وظيفتك المخصصة دون وسيطات. في تعريف do_action () لربط إجراء wp_head ، لا توجد معلمات.
دعنا نقارنها بربط الإجراءات الذي يأخذ المعلمة. يأخذ ربط الإجراء المسمى "wp_register_sidebar_widget" معلمة واحدة يتعين عليك دائمًا تمريرها إلى الوظيفة المخصصة التي تربطها مع الخطاف.
دعونا نرى الفرق في بناء جملة do_action () للحالتين:
do_action ('wp_head') ؛ do_action ('wp_register_sidebar_widget'، $ widget)؛
في الحالة الأولى ، لا توجد معلمة ، لذلك ستستخدم الوظيفة المخصصة بناء الجملة التالي:
دالة my_function_without_parameters () ...
في الحالة الثانية ، هناك معلمة واحدة يجب عليك دائمًا تمريرها كوسيطة في إعلان الوظيفة المخصصة:
دالة my_function_with_parameters ($ widget) …
كيفية ربط الوظيفة المخصصة الخاصة بك في
الآن نحن نعرف كل ما نحتاجه. دعنا ننشئ وظيفتنا المخصصة التي ستعرض فافيكون على موقعنا.
أولاً ، قم بإنشاء وظيفة جديدة دون أي وسيطات ، ثم اربطها بربط إجراء wp_head بمساعدة وظيفة WordPress add_action ().
وظيفة custom_add_favicon () صدى ''؛ add_action ('wp_head'، 'custom_add_favicon')؛
أنت بحاجه إلى تمرير الاسم هوك العمل إلى وظيفة add_action () كحجة أولا, ثم تحتاج إلى إضافة اسم الوظيفة المخصصة الخاصة بك.
هذه هي المعلمتين المطلوبة من add_action (). لديها اثنين من المعلمات الاختيارية أيضا, أفضلية و الحجج المقبولة. دعونا نرى كيفية استخدام هذه.
تحديد الأولويات
يحدث في كثير من الحالات أن هناك أكثر من إجراء منضم إلى نفس الخطاف. وبالتالي أي واحد سيتم تنفيذه أولاً? هذا هو المكان الذي يمكننا استخدام المعلمة الاختيارية ذات الأولوية $ الدالة add_action ().
نضيف الأولوية باعتبارها عددًا صحيحًا إيجابيًا, القيمة الافتراضية هي 10. إذا كنا نريد تنفيذ إجراء ما في وقت مبكر ، فإننا نعطيه قيمة أقل ، وإذا أردنا تنفيذه لاحقًا ، فإننا نعطيه قيمة أعلى.
لذلك إذا اعتقدنا أن favicon يجب أن يكون هناك مبكرًا ، فيمكننا تحسين مكالمة add_action السابقة () بالطريقة التالية:
add_action ('wp_head'، 'custom_add_favicon'، 5)؛
يرجى ملاحظة أن الأولويات يجب أن تكون دائما تعيين نسبيا إلى وظائف مخصصة أخرى التي تستخدم ربط العمل نفسه.
أضف عدد الوسائط المقبولة
يجب عليك إضافة عدد الوسائط المقبولة في حالة استخدام ربط إجراء يأخذ معلمات. دعونا نرى المثال الذي استخدمناه من قبل.
يأخذ ربط الإجراء 'wp_register_sidebar_widget' معلمة واحدة ، لذلك عندما نربط وظيفتنا المخصصة بهذا الخطاف ، نحتاج أيضًا إلى تضمين ذلك كوسيطة عند استدعاء دالة add_action ().
سيبدو رمزنا في هذه الحالة كما يلي:
function my_sidebar_widget_function ($ widget) // Your code add_action ('wp_register_sidebar_widget'، 'my_sidebar_widget_function'، 10، 1)؛
لاحظ أننا يجب أن أيضا إضافة الأولوية (اخترنا الافتراضي 10 هنا) للتأكد من أن WordPress يعرف معنى كل معلمة. إذا تجاهلنا الأولوية ، فقد يفترض WordPress أن 1 هي الأولوية وهذا غير صحيح ، لأنه يشير إلى عدد الوسائط المقبولة.
استنتاج
يمكنك إجراء العديد من التجارب باستخدام خطافات الإجراءات في تخصيص السمة. على سبيل المثال ، يمكنك إضافة البرامج النصية المخصصة (JS) والأنماط الخاصة بك (CSS) مع ربط إجراءات wp_enqueue_scripts ، أو رمز Google Analytics الخاص بك مع ربط إجراءات wp_footer.
لا يمكنك ذلك فقط إضافة الإجراءات الخاصة بك, ولكن يمكنك أيضا إزالة وظائف كاملة من ووردبريس الأساسية مع استخدام وظيفة remove_action () التي تستخدم نفس المنطق مثل add_action ().
إذا كنت مؤلف سمة ، وتريد إنشاء سمة قابلة للتمديد ، فقد تكون فكرة جيدة إضافة السنانير الإجراءات المخصصة الخاصة بك إلى ملفات القالب المناسبة مع do_action () وظيفة.
إذا كنت تريد أن تفعل ذلك, التفكير مليا في المعلمات التي المطورين الآخرين الذين سوف يستخدمون الموضوع الخاص بك سوف تضطر إلى تمرير الحجج عندما يريدون ربط وظائفهم المخصصة.
أثناء تصميم مواقع خطافات التصرفات المخصصة لن تنسى ذلك لا يعقل كثيرًا تضمين خطافات السمة المخصصة على نفس الأماكن التي يكون لدى WordPress Core نفسه خطاطيف خاصة بها.