15 وظائف وورد مفيدة يجب على جميع المطورين معرفتها
إن WordPress مليء بالوظائف الرائعة التي يمكن للمطورين استخدامها. يمكننا سحب قوائم النشرات من الهواء ، والتعامل مع كل شيء تقريبًا عنها ، والاستيلاء على أي مستخدم نرغب فيه وعرض اتصالات الوسائط الاجتماعية الخاصة به في لمح البصر.
ومع ذلك ، هناك عدد قليل من الوظائف التي يبدو أنها أغفلت لأسباب غير معروفة. لقد تم الترميز باستخدام WordPress منذ حوالي 8 سنوات وحتى الآن ما زلت أجد شيئًا جديدًا! دعنا نلقي نظرة على بعض من بلدي وظائف المفضل تجاهلها وتعلم كيفية استخدامها على طول الطريق.
antispambot ()
عادةً ما أرفع بعض الحواجب مع هذا ، يبدو أنه أحد أكثر الوظائف إخفاءًا في قاعدة البيانات.
يستبدل الحروف بكيانات HTML والتي هي طريقة واحدة ل قناع عناوين البريد الإلكتروني من كاشطات الشر.antispambot ()
$ email = '[email protected]' ؛ صدى "يمكنك الاتصال بي على". antispambot ($ البريد الإلكتروني). "في اي وقت".
في حين أن هذه وسيلة مفيدة ، إلا أنها مثال على سبب انتقاد بعض الأشخاص لبرنامج WordPress - وهذه وظيفة سميت بشكل مرعب. من قراءة اسم الوظيفة ، ليس لديك فكرة عما تفعله.
human_time_diff ()
عندما علمت لأول مرة عن هذه الوظيفة منذ حوالي عام ، اعتقدت أنها يجب أن تكون إضافة حديثة تجاهلتها في سجل التغيير. ليس تماما…
هذه الوظيفة - التي تُنتج الفرق بين طابتي زمنية - كانت موجودة منذ الإصدار 1.5 (هذا هو 17 فبراير 2018!).
يظهر المقتطف الكبير التالي الذي استعارته من المخطوطة ، منذ متى تم نشر منشور حالي. ويستخدم نشر تاريخ النشر باعتباره الوسيطة الأولى و ال التاريخ الحالي باعتباره الثاني.
صدى "تم نشر هذا المنشور". human_time_diff (get_the_time ('U') ، current_time ('timestamp')). "قبل" ؛
get_post_meta ()
احمل معي هنا ، أعلم أن هذه وظيفة مستخدمة جيدًا ، ومع ذلك ، كيف تعمل ليست معرفة شائعة. بادئ ذي بدء ، من خلال حذف المعلمتين الثانية والثالثة يمكنك سحب جميع البيانات الوصفية للنشر.
$ all_meta = get_post_meta (14) ؛
حتى لو كنت فقط انتزاع البيانات لمفتاح واحد يتم سحب جميع postmeta على أي حال.
السبب هو في الواقع منطقي جدا. يتم استخدام بيانات التعريف في أماكن متعددة. إذا
يستعلم قاعدة البيانات في كل مرة يتم استخدامه كنا في نهاية المطاف مع الكثير من الاستفسارات. بدلاً من ذلك ، إذا قمت بسحب بيانات التعريف ، يتم تخزينها في ذاكرة التخزين المؤقت بالكامل وتستخدم القيم المخزنة مؤقتًا في جميع عمليات استرداد بيانات التعريف التالية..get_post_meta ()
wp_upload_bits ()
هذه الوظيفة هي متابعة مباشرة ملف تحميل وظيفة. على الرغم من أنه لا ينقل الملف إلى مجلد التحميلات وإضافته إلى قسم وسائط WordPress ، إلا أنه مريح للغاية ويمكنك دائمًا القيام بالباقي باستخدام
وظيفة.wp_insert_attachment ()
$ upload = wp_upload_bits ($ file ['name'] ، null ، file_get_contents ($ file ['tmp_name'])) ؛
هناك بعض التوضيحات المتاحة لهذا: المعلمة الأولى هي اسم الملف. يتم استهلاك القيمة الثانية ، لذا يجب ضبطها على القيمة الفارغة (تجويف العين في تناسق WordPress). المعلمة الثالثة هي المحتوى الفعلي للملف.
get_post_field ()
في الماضي ، رأيت بعض الأمثلة القليلة حيث قام شخص ما بكتابة حلقة للحصول على عدد من تعليقات المنشور ، أو كتب استعلامًا مخصصًا لقاعدة البيانات. أنت لا تحتاج إليها ، ما تحتاجه هو
. هذه الوظيفة يسترد قيمة حقل واحد لنشر واحد في قاعدة البيانات. دعونا الاستيلاء على عدد التعليقات!get_post_field ()
هذا المنصب لديه تعليقات.
wpautop ()
لقد خرجت هذه الوظيفة إلى دائرة الضوء قليلاً ، لكنها لا تزال غير معروفة نسبيًا. وهو مشابه ل PHP الأصلي nl2br
ولكن بدلا من إنشاء خطوط جديدة ، فإنه يلف المحتوى الخاص بك في الفقرات.
هذا مفيد إذا كان لديك مربع نص وتريد التأكد من أنه عندما ينشئ المستخدمون فقرات ذات فواصل أسطر مزدوجة ، فإنها تظل مرئية في الواجهة الأمامية أيضًا.
ما يقوله مستخدمونا
wp_is_mobile ()
هذه الوظيفة المسماة بشكل مناسب يكتشف عندما يكون المستخدم على جهاز محمول ويسمح لك بعرض المحتوى وفقًا لذلك. نظرًا لأن هذه علامة شرطية فإنها ترجع صواب أو خطأ وفقًا للسيناريو.
تفضل بزيارة موقعنا على سطح المكتب للحصول على تجربة مستخدم أكثر ثراءً
wp_redirect ()
يوضح المثال الأخير وظيفة أخرى أنيقة:
. هذا يجب أن يستخدم بدلا من PHP الأصلي wp_redirect ()
رأس ()
وظيفة. تتيح لك وظيفة إعادة توجيه WordPress قم بتعيين عنوان URL لإعادة التوجيه إليه ، وقم أيضًا بتعيين رمز الحالة, عظيم للتعامل مع عمليات إعادة التوجيه الدائمة كذلك.
// بالنسبة لعنوان URL الذي لم يعد قيد الاستخدام wp_redirect ('http://website.com/new-url/'، 301)؛
paginate_links ()
أراهن أن هذه الوظيفة ترجع جزئياً إلى الغموض الذي يكتنف شعبية المكون الإضافي WP-PageNavi. افتراضيا وورد يعرض الروابط السابقة / التالية في نهاية قائمة المنشورات. WP-PageNavi يستبدل ذلك بأرقام الصفحات.
هذا يمكن أن يتم في الواقع مع القليل من العمل باستخدام
المهام. لديها عدد غير قليل من المعلمات لذلك أوصي بأخذ نظرة خاطفة على الوثائق.paginate_links ()
يوضح المثال التالي من المخطوطة كيف يمكنك إضافته إلى حلقة افتراضية ولكن إضافته إلى حلقات مخصصة ليست امتدادًا كبيرًا.
$ wp_query العالمية ؛ $ كبير = 999999999 ؛ // بحاجة إلى عدد صحيح غير محتمل صدى paginate_links (array ('base' => str_replace ($ big، '٪ #٪'، esc_url (get_pagenum_link ($ big)))، 'format' => '؟ paged =٪ #٪' ، 'الحالي' => الحد الأقصى (1، get_query_var ('paged'))، 'total' => $ wp_query-> max_num_pages))؛
wp_die ()
هذه الوظيفة تكمل PHP موت()
وظيفة. الفرق هو أن هذه الوظيفة ستعرض HTML على غرار ووردبريس بدلاً من مجرد نص عادي. يمكنك استخدام هذه الوظيفة لإيقاف تنفيذ PHP. يمكنك إضافة الرسالة والعنوان والوسائط الإضافية ليتم عرضها ، على سبيل المثال:
wp_die ("عفوًا ، لا يمكنك الوصول إلى" ، "تم رفض الإذن") ؛
has_block ()
في الإصدار 5.0 ، قدم WordPress محررًا قائمًا على الكتلة ، يحمل الاسم الرمزي Gutenberg. ستحدد هذه الوظيفة ما إذا كان المحتوى يحتوي على Gutenberg ، تمامًا مع has_shortcode ()
وظيفة. سوف يعود صحيح
إذا كان المحتوى يحتوي على كتلة ، أو خاطئة
إذا لم يفعل ذلك.
wp_set_script_translations ()
نظرًا لأن جزءًا كبيرًا من واجهة مستخدم WordPress سينتقل إلى JavaScript ، فإنه يحتاج إلى طريقة ملائمة لتسجيل النصوص القابلة للترجمة في JavaScript والتي يمكن لـ WordPress تحليلها وفهمها. استخدم هذه الوظيفة لتعيين سلاسل مترجمة للنصوص البرمجية الخاصة بك. أدناه مثال:
wp_enqueue_script ('my-script'، plugins_url ('js / my-script.js'، __FILE__))؛ wp_set_script_translations ('my-script'، 'mu-text-domain')؛
register_block_type ()
وظيفة أخرى بارزة في وورد 5.0. تتيح لك هذه الوظيفة تسجيل كتلة جديدة في محرر WordPress الجديد. سوف يظهر الحظر الخاص بك في المحرر الجديد وإدراجه .
register_block_type ('my-plugin / new-block'، array ('title' => 'New Block'، 'icon' => 'megaphone'، 'category' => 'widgets'، 'render_callback' => 'render_function_callback' ،))؛
rest_do_request ()
تتيح لك هذه الوظيفة إجراء مكالمات إلى نقاط نهاية واجهة برمجة تطبيقات WordPress REST من خلال PHP. مفيد جدًا عندما تحتاج إلى استرداد ناتج من واجهة برمجة تطبيقات REST للمعالجة التي ستعالجها بشكل أكبر داخل جانب PHP بدلاً من جانب المتصفح (الواجهة الأمامية).
$ request = جديد WP_REST_Request ('GET'، "/ wp / v2 / posts")؛ $ request-> set_header ('X-WP-Nonce'، wp_create_nonce ('wp_rest'))؛ استجابة $ = rest_do_request (طلب $) ؛ بيانات $ = 200 === $ response-> get_status ()؟ $ response-> get_data (): []؛
rest_preload_api_request ()
عند إنشاء واجهة مستخدم JavaScript ثقيلة في WordPress ، عادة ما تحتاج إلى مجموعة من البيانات الأولية المحملة داخل الصفحة. هذه هي الوظيفة التي سوف تسمح لك بذلك. وتهدف هذه الوظيفة لاستخدامها جنبا إلى جنب مع array_reduce
, فمثلا.
// التحميل المسبق للبيانات الشائعة. $ preload_paths = array ('/'، '/ wp / v2 / types؟ context = edit'، '/ wp / v2 / taxonomies؟ per_page = -1 & context = edit'، '/ wp / v2 / theme؟ status = active' ،)؛ preload_data = array_reduce ($ preload_paths، 'rest_preload_api_request'، array ())؛ wp_add_inline_script ('wp-api-fetch'، sprintf ('wp.apiFetch.use (wp.apiFetch.createPrelownloadMiddleware (٪ s))؛'، wp_json_encode ($ preload_data))، 'after')؛
استنتاج
هذه ليست سوى بعض الوظائف التي يبدو أنها أقل شهرة من البقية. لقد اكتشفت وظيفة جديدة رائعة كل شهرين وأنا متأكد من أن أصدقائي المطورين قد يفاجئوننا أكثر.
إذا كان لديك وظيفة غامضة مفضلة أو وظيفة ستكون مفيدة ولكنها غير متوفرة ، فأخبرنا في التعليقات!