دليل إلى WordPress PHP
نشرت: 2020-10-16تبحث لفهم WordPress PHP؟ في هذا المنشور ، سنكشف ما هو PHP وكيف يعمل مع WordPress. سيساعد فهم PHP وكيفية تكاملها مع WordPress في صيانة الموقع واستكشاف الأخطاء وإصلاحها وتطوير WordPress بشكل عام.
ما هي لغة PHP؟
PHP ، اختصار لـ Hypertext Preprocessor ، هي لغة برمجة نصية يستخدمها ما يقرب من 79٪ من الويب . يتيح لك PHP القيام بالعديد من الأشياء القوية ، مثل التفاعل مع قاعدة بيانات وكتابة عبارات شرطية والحصول على معلومات خاصة بـ WordPress وسحب ملفات الوسائط وغير ذلك الكثير.
WordPress PHP
PHP هي التي تشغل WordPress ، حيث أن معظم ملفات WordPress الأساسية مكتوبة بهذه اللغة. إذا نظرت إلى قائمة الملفات في موقع WordPress على الويب ، فسترى أن معظم الملفات تنتهي بـ .php ، مما يعني أن الملف هو ملف PHP. معظم ملفات WordPress PHP المدرجة في لقطة الشاشة أدناه ضرورية لتشغيل موقع WordPress على الويب.
كيف تعمل PHP: مواقع WordPress
دعنا نلقي نظرة على مثال من العالم الحقيقي لكيفية استخدام PHP على موقع WordPress. في هذا المثال ، سنستخدم عبارة شرطية لتحديد ما إذا كان المستخدم قد قام بتسجيل الدخول أم لا:
<?php if ( true === user_is_logged_in() ) { echo 'You are logged in!'; } else { echo 'You are not logged in! Please sign in.'; }
حتى إذا لم تكن لديك أي معرفة بـ PHP ، يمكنك إزالة إما أن المستخدم قد قام بتسجيل الدخول أو لم يقم بتسجيل الدخول. نستخدم شرطًا (if / else) للتحقق مما إذا كان المستخدم قد قام بتسجيل الدخول أم لا ، إذا كان كذلك سيعرض رسالة ترحب بهم وإذا لم يكونوا كذلك ، فسنطلب منهم تسجيل الدخول. في حين أن هذا مجرد مثال أساسي ، يمكنك أن ترى مدى قوة الشروط الشرطية.
يمكنك أن ترى أننا فحصنا الوظيفة "user_is_logged_in". نعلم أن هذه دالة لأنها تحتوي على الأقواس "()" بعد الاسم.
إذا أعادت الوظيفة خطأ ، فعند تشغيل الكود ، ستعرض الرسالة:
"لم يتم دخولك! الرجاء تسجيل الدخول."
PHP و WordPress
فقط من المثال أعلاه ، ستلاحظ أن PHP موجودة في كل مكان في WordPress. يحتوي WordPress على أنظمة فرعية مثل الحلقات التي تتحكم في عدد المنشورات المعروضة ، جنبًا إلى جنب مع الخطافات التي تعدل الوظائف وواجهات برمجة التطبيقات والقوالب والمكونات الإضافية.
WordPress PHP: تمكين التصحيح
لن يعرض WordPress ، افتراضيًا ، أي أخطاء / تحذيرات ناتجة عن PHP. هذه ممارسة جيدة للمواقع قيد الإنتاج ، ولكن إذا كنت تقوم بالتطوير ، فأنت تريد تمكين ذلك. لتمكين تصحيح الأخطاء ، ما عليك سوى تغيير هذا السطر في ملف wp-config.php ، الموجود في الدليل الجذر لـ WordPress:
define( 'WP_DEBUG', false );
ما عليك سوى تغيير WP_DEBUG الثابت إلى صحيح ، ثم حفظ الملف. سيتم الآن عرض أي أخطاء أو تحذيرات مخفية ، وهذا ما نريده.
الحلقة والاستعلام
الاستعلام عبارة عن نظام يجمع المشاركات التي سيتم عرضها على الصفحة ، والحلقة هي ما يمر عبر كل منشور ويعرضها وفقًا لذلك. في صفحتك الرئيسية ، سيبحث الاستعلام عن أحدث المنشورات ويحصل على أحدث 10 منشورات. في صفحة الفئة ، سيبحث الاستعلام عن أحدث 10 منشورات من فئة معينة. يمكنك أيضًا تعديل الاستعلام واستخدامه لما تريد إنجازه.
لنلقي نظرة على مثال:
<?php if ( have_posts() ) { $i = 0; while ( have_posts() ) { $i++; if ( $i > 1 ) { echo '<hr class="post-separator styled-separator is-style-wide section-inner" aria-hidden="true" />'; } the_post(); get_template_part( 'template-parts/content', get_post_type() ); } } elseif ( is_search() ) { ?> <div class="no-search-results-form section-inner thin"> <?php get_search_form( array( 'label' => __( 'search again', 'twentytwenty' ) ); ?>
يبدأ الكود بالتحقق مما إذا كانت الوظيفة "have_posts ()" تحتوي على أي بيانات لتكرارها. إذا كان الأمر كذلك ، فإنه يقوم بتعيين المتغير $ i على 0. ثم يقوم بتشغيل حلقة while ، وهي حلقة تعمل طالما كان الشرط صحيحًا (أي أنه يحتوي على بيانات لإرجاعها). يقوم أولاً بزيادة المتغير $ i بمقدار 1 "$ i ++؛" ، ثم يقوم بتشغيل عبارة شرطية للتحقق مما إذا كان المتغير $ i أكبر من 1. إذا كان الأمر كذلك ، فإنه يعرض بعض HTML لفصل المنشور. بعد ذلك ، احصل على المنشور مع الوظيفة "the_posts ()" ويعرض محتوى المنشور مع الوظيفة ، "get_template_part ()".

إذا لم يتم استيفاء هذا الشرط ، فإنه يستخدم وظيفة "is_search" لتحديد ما إذا كان البحث أم لا. إذا كان الأمر كذلك ، فإنه يعرض ببساطة بعض HTML ويقوم بتشغيل وظيفة "get_search_form ()" التي تطلب من المستخدم البحث مرة أخرى.
خطاف
يمنح WordPress المطورين الفرصة لتعديل الوظائف الأساسية. ومع ذلك ، لا تريد تعديل الملفات الأساسية. هذه هي القاعدة رقم 1 في التنمية ، وهي ببساطة ممارسة سيئة. قد يكون الأمر صعبًا في بعض الأحيان اعتمادًا على المشروع الذي تعمل عليه ، ولكن هذا هو المكان الذي تلعب فيه الخطافات. WordPress هو كل شيء عن الخطافات ، وله خطافان أساسيان يستخدمان للتطوير. هذان الخطافان عبارة عن خطافات عمل وخطافات تصفية. تتيح لك أدوات ربط الإجراء إضافة تعليمات برمجية مخصصة ، وتسمح لك أدوات التصفية بتعديل البيانات قبل استخدامها.
دعنا نخصص wp_footer لإضافة الكود الخاص بنا قبل علامة إغلاق الجسم للموضوع. إذا قمت بفتح وظائف theme.php يمكنك إضافة الكود التالي:
function ithemes_footer_code() { ?> <p>This is the footer.</p> <?php } add_action( 'wp_footer', 'ithemes_footer_code' ); // ---- END // ---- BEGIN if ( ! function_exists( 'ithemes_custom_length_excerpt' ) ) { function ithemes_custom_length_excerpt( $length ) { return 50; } } add_filter( 'excerpt_length', 'ithemes_custom_length_excerpt', 999 );
ينشئ هذا الرمز وظيفة "ithemes_footer_code" ، والتي تُستخدم كدالة رد نداء تستخدم لوظيفة "add_action ()". تحتوي هذه الوظيفة على الكود الذي نرغب في تنفيذه على wp_footer. بالنسبة إلى المعلمة الأولى لـ add_action ، نسمي "wp_footer" مما يشير إلى أن هذا الرمز سيتم تشغيله في التذييل. المعلمة الثانية هي وظيفة رد الاتصال (الوظيفة التي أنشأناها للتو) ، وسوف تقوم بتشغيل الكود المخصص. هذا مثال على خطاف العمل.
دعنا نعدل الطول المخصص لمقتطف من المنشور. بشكل افتراضي ، سيعرض WordPress 57 حرفًا ولكن يمكننا تعديل عدد الأحرف ليكون أكثر أو أقل:
if ( ! function_exists( 'ithemes_custom_length_excerpt' ) ) { function ithemes_custom_length_excerpt( $length ) { return 50; } } add_filter( 'excerpt_length', 'ithemes_custom_length_excerpt', 999 );
نتحقق أولاً لمعرفة ما إذا كانت الوظيفة التي نقوم بإنشائها موجودة بالفعل عن طريق كتابة شرطي للدالة "function_exists ()". إذا لم يكن موجودًا ، فسننشئ الدالة ويأخذ طول $ كوسيطة. ثم نعيد القيمة 50. بعد ذلك ، نقوم بتشغيل وظيفة “add_filter ()” التي يمكن أن تحتوي على 4 معلمات ، لكننا نستخدم ثلاثة فقط. هذا مثال على ربط المرشح.
الختام: WordPress PHP
كما ترى ، فإن مجرد تعلم أساسيات WordPress PHP وكيفية تطبيق PHP في قاعدة أكواد WordPress يمنحك فهمًا أفضل لكيفية عمل موقعك بالفعل خلف الكواليس. شاهد بعضًا من دروس الفيديو هنا على PHP: Syntax و Loop in WordPress و WordPress Templates.
