1. مقدمة: يعني إيه functions.php؟
لما نقول إن ده “قلب القالب”، فإحنا مش بنبالغ!
functions.php هو المكان اللي بتضيف فيه كل الأكواد اللي بتخلي القالب شغال بذكاء.
عايز تضيف دعم لقائمة؟
تشغّل صورة مصغرة؟
تحمل ملفات CSS؟
تكتب دالة مخصصة؟
تتحكم في سلوك الموقع؟
👇
كل ده بيحصل من خلال functions.php
2. الملف ده بيشتغل إزاي؟
بمجرد ما المستخدم يفعّل القالب، ووردبريس بيقرأ ملف functions.php تلقائيًا.
يعني مش محتاج تنادي عليه يدويًا، هو شغال في الخلفية وبيقوم بدور مدير العمليات.
3. الفرق بينه وبين ملفات القالب التانية
| الملف | الوظيفة |
|---|---|
style.css | التنسيق والشكل العام |
index.php | عرض المحتوى |
functions.php | تشغيل خصائص القالب وإضافة أكواد برمجية مخصصة |
ببساطة: ده مش ملف تصميم، ده ملف ذكاء وتحكم.
4. أهم الحاجات اللي ممكن تضيفها فيه
- تشغيل خصائص القالب (thumbnails, menus, widgets)
- تسجيل ملفات CSS وJS
- إضافة أكواد الحماية أو التخصيص
- كتابة دوال خاصة للقالب
- التعديل على سلوك ووردبريس
5. كود تهيئة القالب – أول خطوة في functions.php
أول حاجة بتعملها هي تعريف خصائص القالب الأساسية:
function abozaid_theme_setup() {
// دعم الصورة البارزة
add_theme_support('post-thumbnails');
// تسجيل القوائم
register_nav_menus(array(
'main-menu' => 'Main Menu',
'footer-menu' => 'Footer Menu'
));
// دعم العناوين
add_theme_support('title-tag');
}
add_action('after_setup_theme', 'abozaid_theme_setup');
6. إضافة دعم للصور المصغرة، القوائم، والـ widgets
الصور المصغرة (Thumbnails):
add_theme_support('post-thumbnails');
القوائم:
register_nav_menus([
'header-menu' => 'قائمة الهيدر',
'footer-menu' => 'قائمة الفوتر'
]);
Widgets:
function abozaid_widgets_init() {
register_sidebar([
'name' => 'Sidebar',
'id' => 'sidebar-1',
'before_widget' => '<div class="widget">',
'after_widget' => '</div>',
]);
}
add_action('widgets_init', 'abozaid_widgets_init');
7. تسجيل ملفات CSS وJS من خلاله
ده مهم جدًا علشان تنظم تحميل الملفات وتتحكم في السرعة:
function abozaid_enqueue_files() {
wp_enqueue_style('main-style', get_stylesheet_uri());
wp_enqueue_script('main-js', get_template_directory_uri() . '/js/main.js', [], false, true);
}
add_action('wp_enqueue_scripts', 'abozaid_enqueue_files');
8. إنشاء وظائف مخصصة للقالب
تقدر تضيف أكواد أو دوال بتخدم هدف معين:
function abozaid_custom_excerpt($length) {
return 20;
}
add_filter('excerpt_length', 'abozaid_custom_excerpt');
9. استخدامه لتغيير سلوك ووردبريس
مثلاً تخفي الشريط العلوي من الواجهة:
add_filter('show_admin_bar', '__return_false');
أو تمنع ووردبريس من تحميل نسخته من jQuery:
function remove_default_jquery() {
wp_deregister_script('jquery');
}
add_action('wp_enqueue_scripts', 'remove_default_jquery');
10. الفرق بينه وبين الإضافات (Plugins)
functions.php | Plugin |
|---|---|
| شغال مع القالب بس | شغال في أي موقع |
| بيتوقف لو القالب اتغيّر | بيكمل شغل حتى لو غيرت القالب |
| مناسب للحاجات الصغيرة | مناسب للوظائف الكبيرة والمعقدة |
11. أفضل ممارسات كتابة الكود في functions.php
✅ استخدم أسماء فريدة للدوال (علشان ما تتعارضش مع الإضافات)
✅ قسم الكود باستخدام تعليقات
✅ استخدم add_action و add_filter بدل ما تكتب دوال عشوائية
✅ لو الكود كبير، افصله في ملفات تانية واستدعيه
✅ اعمل نسخة احتياطية قبل ما تعدل
12. أخطاء شائعة لازم تتجنبها
❌ تكتب دالة بنفس اسم دالة موجودة
❌ تنسى سيمي كولن
❌ تحميل ملفات JS أو CSS غلط
❌ نداء دوال ووردبريس قبل وقتها
❌ كتابة كود جوا functions.php بدون if function_exists
13. هل ينفع أستغنى عنه؟
تقنيًا… لأ
أي قالب محترم لازم يكون فيه functions.php
حتى لو فاضي! ووردبريس بيتوقع وجوده.
14. نسخة مطورة من الملف – مثال عملي
<?php
// تهيئة القالب
function abozaid_theme_setup() {
add_theme_support('post-thumbnails');
add_theme_support('title-tag');
register_nav_menus([
'main-menu' => 'Main Menu',
]);
}
add_action('after_setup_theme', 'abozaid_theme_setup');
// تحميل الملفات
function abozaid_enqueue_styles() {
wp_enqueue_style('main-style', get_stylesheet_uri());
}
add_action('wp_enqueue_scripts', 'abozaid_enqueue_styles');
// إضافة ويدجت
function abozaid_widgets() {
register_sidebar([
'name' => 'Main Sidebar',
'id' => 'sidebar-1',
'before_widget' => '<section>',
'after_widget' => '</section>',
]);
}
add_action('widgets_init', 'abozaid_widgets');
15. مراجعة سريعة
functions.phpهو دماغ القالب- بتضيف فيه الخصائص والتخصيصات
- بتسجل فيه الملفات والوظائف
- بيتنفذ تلقائي أول ما القالب يتفعّل
- لو فهمته صح، تقدر تتحكم في الموقع بشكل كامل
✅ الأسئلة الشائعة
س: لو كتبت كود غلط في functions.php، إيه اللي هيحصل؟
ج: الموقع ممكن يظهر شاشة بيضاء أو “خطأ فادح”، لازم تعدل الكود من مدير الملفات أو FTP.
س: ينفع أستخدم دوال جافا سكريبت هنا؟
ج: لأ، ده ملف PHP، لكن تقدر تسجل ملفات JS منه.
س: هل ينفع أقسم الكود في ملفات تانية؟
ج: أيوه، الأفضل كده، واستخدم require أو include.
خلاصة الدرس: “الملف اللي بيحرّك كل حاجة!”
دلوقتي فهمت إنك مش مجرد بتصمم شكل في ووردبريس،
أنت بتبرمج عقله كمان!
functions.php مش بس ملف…
ده مركز التحكم في القالب، وهتستخدمه في كل تفصيلة صغيرة وكبيرة.
اكتبه صح، واحفظ عليه، وخليه منظم
علشان هو اللي هيخلي شغلك يبدو احترافي ومتين 🔥
مراجعة متحيزة إيجابية
بصراحة، أي مطور ووردبريس لازم يكون صاحبه الأول هو functions.php.
من غيره، القالب هيبقى مجرد ديكور ساكت!
لكن معاه، القالب بيبقى ديناميكي وذكي.
وكل لما تتعلم أكتر، هتحب الملف ده أكتر، وهتبدأ تبني دوالك بنفسك، وتتحكم في سلوك الموقع زي الساحر!
