ما هو ملف functions.php في ووردبريس؟ وما أهميته؟ كيف تقوم بتحريره؟

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

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


 ما هو ملف Functions.php؟

يعتبر ملف functions.php من الملفات الهامة جداً في بنية نظام ووردبريس، ويعرف باسم “ملف وظائف القالب” حيث يكون مضمناً في المجلد الخاص بكل قالب مثبت على موقع ووردبريس.  يعمل هذا الملف بأسلوب مشابه لأسلوب عمل الإضافات (Plugins) فمن خلال هذا الملف يمكنك إضافة ميزات ووظائف جديدة، وكذلك تغيير الميزات الافتراضية على موقع ووردبريس الخاص بك.

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

أمثلة على استخدامات ملف function.php

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

مثلاً يمكن إضافة أكواد برمجية لإضافة عنصر واجهة جديد (Widget) إلى تذييل الموقع، أو عرض رسالة ترحيب مخصصة في لوحة التحكم الخاصة بمسؤول الموقع، أو عرض أيقونة (Favicon) لتظهر بجوار عنوان موقعك في المتصفح، أو عرض تاريخ محدث دوماً لعبارة حقوق النشر (Copyright) التي تظهر أسفل الموقع.. وغيرها من الوظائف والميزات التي لا حصر لها. 

أين أجد ملف  functions.php؟

يوجد  ملف  functions.php في كل مجلد فرعي لكل قالب. أي في المسار التالي:

/wp-content/themes/your_theme_name/functions.php

ملحوظة: your_theme_name هو اسم القالب المستخدم في موقعك

على سبيل المثال الصورة التالية توضح مسار الملف functions.php للقالب Twenty Eleven  (وهو القالب الافتراضي في ووردبريس) 

يتواجد ملف functions.php عادة في كل قالب من القوالب الموجودة في موقعك، وإذا لم يكن القالب الخاص بك يملك هذا الملف، يمكنك إنشاء ملف جديد من أي محرر نصوص وإضافته للقالب. ويوجد أيضًا ملف function.php في المجلدwp-include  لكن لا تستخدم هذا الملف إلا إذا كنت مبرمجاً خبيراً.

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

للوصول إلى هذا الملف قم بتسجيل الدخول إلى لوحة تحكم موقعك ثم اختر: المظهر < محرر القوالب. كما هو موضح في الصورة التالية.

ستظهر لك رسالة تحذيرية تخبرك هذه الرسالة بأنك تعدل في ملفات القالب الأساسي وفي حال تحديث القالب سيتم فقدان هذه التعديلات.  للمتابعة انقر على الزر “لقد فهمت” للمتابعة. 

بعد النقر على هذا الزر سيفتح لك بعدها محرر القوالب للقالب الحالي النشط على موقعك كما هو مبين في الصورة التالية التي يظهر فيها اسم القالب النشط (OceanWP)، وستظهر في الجهة اليسرى ملفات هذا القالب. اختر الملف خصائص القالب”functions.php” لعرض محتوياته. 

هنا يمكنك إضافة الكود الخاص بك وتعديل القالب كما تشاء.

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

  •   تعريف توابع برمجية تعرف باسم خطافات  ووردبريس ( WordPress Hooks) وهي توابع تتضمن مجموعة واسعة من فلاتر وأحداث ووردبريس مهمتها تعديل الميزات الافتراضية، فهي تعدل تقريباً كل شيء يقوم به ووردبريس (على سبيل المثال يمكنك تعديل الفلتر expert-length  الذي يحدد طول الجزء المقتطع من كل منشور والظاهر للمستخدم والذي يكون افتراضياً مكون من  55  كلمة، ويجب أن يضغط المستخدم على رابط المزيد لقراءة المنشور كاملاً)
  • تفعيل ميزات إضافية للقالب مثل تفعيل الصور المصغرة، وقوائم التنقل وغيرها الكثير من خلال التابع ” add_theme_support”
  • تعريف توابع جديدة ترغب في استخدامها في القالب الحالي أو في عدة ملفات قوالب أخرى..

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

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

ملحوظة: أحياناً يكفي وضع بعض التعليمات البرمجية  في الملف function.php  فقط لتظهر الناتج مباشرة في موقعك.وأحياناً يجب عليك وضع بعض التعليمات البرمجية الإضافية (بلغة php أوcss)  في مكان آخر في الموقع لاستدعاء نتائج التعليمات البرمجية التي أضفتها في الملف وجعلها تظهر في الموقع. هذا يعتمد على الكود المكتوب. 

ما هي الجوانب السلبية لتعديل كود الملف functions.php ؟

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

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

وفيما يلي بعض سلبيات إضافة الميزات لموقعك من خلال تحرير ملف function.php

  •     ستفقد كافة التعديلات التي قمت بإجرائها على الملف function.php  إذا قمت بتحديث قالب ووردبريس المستخدم في موقعك.
  •   أيضاً ستفقد كافة التعديلات التي قمت بإجرائها إذا قمت بتغيير القالب الحالي بقالب آخر لأن هذا الملف خاص بكل قالب.
  • أي خطأ يرتكب في كتابة الكود في الملف سيتسبب في عدم قدرتك على الدخول لموقعك. فأي أخطاء مهما كانت بسيطة مثل الخطأ في كتابة اسم متغير أو نسيان فاصلة منقوطة يمكن أن يتسبب في جعل موقعك يختفي بالكامل ويعرض شاشة الخطأ المعروفة باسم  شاشة الموت البيضاء “white screen of death” أو أخطاء أخرى في نظام ووردبريس.

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

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

متى ألجأ لتعديل الكود البرمجي للملف Function.php؟

يفضل أن تقوم بتحرير ملف  function.php وإضافة الأكواد له في حال وجود قالب فرعي (child theme) تم بناؤه بالاعتماد على  قالب أساسي (قالب أب) في موقعك. وكنت تريد استخدام مقاطع الكود البرمجية  فقط مع هذا القالب الفرعي النشط لتعديله وليس مع القالب الأب. كي تتمكن من تحديث القالب الأصلي دون أن تؤثر على القالب الفرعي له.

عندها يمكن استخدام الملف function.php للقالب الفرعي لزيادة أو استبدال وظائف القالب الأصلي.

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

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

ما هي الحلول البديلة لتعديل الملف function.php؟

هناك حلول بديلة يمكنك اتباعها إذا كانت لا تريد  تعديل الملف  function.php. 

حيث يمكنك في معظم الأحيان الحصول على نفس النتيجة باستخدام المكونات الإضافية (Plugins)، لأن الإضافات في ووردبريس تخزن ضمن عادة  مجلدات فرعية في المسار التالي:

 wp-content/plugins

بينما يخزن ملف functions.php كما ذكرنا مسبقاً  في مجلد فرعي للقالب داخل المسار التالي

 wp-content / theme

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

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

وبالتالي يمكنك أن تعتمد على الإضافات الجاهزة في حال وجدت إضافة مناسبة تلبي احتياجاتك.

وفي حال لم تجد إضافة تلبي متطلباتك، يمكنك أن تتعلم كيف تنشئ بنفسك إضافة ووردبريس تكون خاصة بموقعك. يُطلق على هذا النوع من الإضافات عادة اسم إضافة ووردبريس مخصصة (Custom WordPress Plugin) لأنها ستكون إضافة خاصة بموقعك، ولن يتم مشاركتها في دليل مكونات ووردبريس الإضافية. ويعد استخدام إضافة مخصصة حلاً أفضل، لأن الكود البرمجي للوظيفة المطلوبة سيخزن بشكل منفصل عن ملف الوظائف function.php الخاص بالقالب. ويمكنك تنشيط الإضافة أو إلغاء تنشيطها متى ما أردت، مع ضمان عدم اختفاء التعليمات البرمجية الخاصة بك إذا قمت بتحديث القالب أو تبديله بقالب آخر.

بالنهاية يعتبر ملف function.php  أحد أهم الملفات التي يحتاج مطورو ووردبريس إلى إتقان التعامل معها لتطوير القوالب وإضافة الميزات والوظائف الإضافية للموقع. 

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