فانکشن وردپرس و تفاوت آن با سایر اجزای قالب – Function.php

فانکشن وردپرس

فانکشن وردپرس چیه و چه فرقی با بقیه اجزای قالب داره ؟

 

  • بخش‌های قالب مثل header.php یا single.php بیشتر HTML + PHP ترکیبی هستن که خروجی رو می‌سازن (یعنی همون چیزی که کاربر می‌بینه).

  • ولی functions.php یا فایل‌های افزونه، بیشتر شبیه مغز بک‌اند هستن که به وردپرس می‌گن چی کار بکنه، نه اینکه مستقیم چیزی رو چاپ کنن.

  • اونجا ما هوک‌ها (Hooks) رو استفاده می‌کنیم تا توی فرآیند کار هسته وردپرس دخالت کنیم.

  • کدهایی که توی functions.php یا پلاگین‌ها می‌ذاریم، در واقع مستقیم با هسته وردپرس در ارتباطن و از سیستم Hook استفاده می‌کنن.

 

 Hook چیه؟

هوک در وردپرس یعنی: «وقتی فلان اتفاق افتاد، این کد من رو هم اجرا کن».

دو نوع اصلی داریم:

    1. Action Hooks → مثل add_action('wp_head', 'my_function')
      یعنی موقع اجرای wp_head، تابع من رو هم اجرا کن.

    2. Filter Hooks → مثل add_filter('the_content', 'my_filter')
      یعنی قبل از اینکه وردپرس محتوای پست رو نشون بده، از تابع من بگذرون و خروجی جدید رو بده.

 مثال با add_filter

فرض کن می‌خوای هر بار که متن پست‌ها نمایش داده میشه، آخرش یک جمله اضافه بشه:

function add_signature_to_content($content) {
return $content . ‘<p>با عشق</p>’;
}
add_filter(‘the_content’, ‘add_signature_to_content’);

اینجا:

  • the_content → همون نقطه اتصال (Hook) که وردپرس برای محتوا استفاده می‌کنه.

  • add_filter → میگه “محتوا رو بفرست به تابع من، بعد نشون بده”.

  • تابع add_signature_to_content → متن اصلی رو می‌گیره، تغییر میده و برمی‌گردونه.

 

پس فرق کدهای functions.php با بقیه قالب

  • کدهای functions.php یا پلاگین‌ها:

    • بیشتر دستوراتی برای تغییر رفتار وردپرس هستن.

    • با هوک‌ها به چرخه اجرای وردپرس وصل میشن.

    • معمولا چیزی رو مستقیم چاپ نمی‌کنن، بلکه داده رو تغییر میدن یا پردازش می‌کنن.

  • کدهای template (مثل index.php، header.php):

    • بیشتر نمایش و ساختار ظاهری رو می‌سازن.

    • ترکیبی از HTML و PHP که خروجی نهایی رو برای مرورگر تولید می‌کنه.

جایگاه هوک‌ها

  • add_action → برای اضافه کردن کد در نقاط خاص از اجرای وردپرس

    مثلا:

    add_action('wp_head', 'my_custom_code');

    این کد دقیقا قبل از بستن <head> اجرا میشه.

  • add_filter → برای تغییر یا پردازش داده‌ها قبل از استفاده
    مثلا:

    add_filter('the_title', 'edit_post_title');

    این کد قبل از نمایش عنوان پست، اون رو تغییر میده.

محمدهادی بیگی وب‌سایت

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *