🚨 میتونی مقدار یک Option وردپرس رو بدون حتی یک Query تغییر بدی!خیلیها برای تغییر مقدار یک تنظیم م…
انتشار: 2026/08/19 19:13 UTCدریافت: 2026/08/22 03:33 UTCآخرین مشاهده: 2026/08/22 03:33 UTC
🚨 میتونی مقدار یک Option وردپرس رو بدون حتی یک Query تغییر بدی!خیلیها برای تغییر مقدار یک تنظیم میرن سراغ:update_option( 'my_setting', 'new_value');اما وردپرس یک هوک خیلی خفن داره که میتونه قبل از اینکه get_option() سراغ دیتابیس بره مقدار رو برات برگردونه:pre_option_{$option}😳 مثال واقعیفرض کن این Option رو داری:get_option( 'my_api_url' );میتونی بدون دست زدن به دیتابیس کاری کنی همیشه مقدار دلخواهت برگرده:add_filter( 'pre_option_my_api_url', function () { return 'api.example.com/v2'; });از این لحظه:get_option( 'my_api_url' );همین مقدار رو دریافت میکنه.🔥 کاربردش کجاست؟فرض کن یک افزونه قدیمی داری که داخل صدها جای مختلف نوشته:get_option( 'my_plugin_mode' );لازم نیست بری همه فایلها رو تغییر بدی.میتونی مقدار Option رو از بیرون Override کنی:add_filter( 'pre_option_my_plugin_mode', function () { return 'production'; });بدون:❌ تغییر دیتابیس❌ تغییر کد افزونه❌ اجرای update_option()🤯 حتی جالبتر...همین تکنیک برای بعضی Optionهای هسته وردپرس هم قابل استفاده است.مثلاً:add_filter( 'pre_option_blogname', function () { return 'قلب وردپرس ❤️'; });حالا:get_option( 'blogname' );مقدار جدید رو برمیگردونه؛ در حالی که مقدار اصلی دیتابیس دست نخورده باقی مونده.⚠️ ولی حواست باشه!این تکنیک برای تغییر دائمی تنظیمات نیست.اگر میخوای مقدار واقعاً در دیتابیس ذخیره بشه:update_option()راه درستشه.pre_option_* بیشتر برای:🔹 Override موقت🔹 تست و Debug🔹 Environmentهای مختلف🔹 تغییر رفتار افزونه بدون دستکاری سورس🔹 سیستمهای Multi-site / Multi-environmentاستفاده میشه.💎 نکتهای که خیلیها نمیدونن:وردپرس فقط یک سیستم ذخیرهسازی نیست؛ خیلی از APIهای هسته قابل Intercept شدن هستن.یعنی قبل از اینکه وردپرس کاری رو انجام بده، میتونی وارد جریانش بشی و نتیجه رو تغییر بدی.این یعنی قدرت واقعی Hookهای وردپرس. 🔥💬 حالا سؤال:اگر قرار بود بدون تغییر دیتابیس، یکی از Optionهای سایتت رو Override کنی، کدوم Option رو انتخاب میکردی؟جوابت رو کامنت کن 👇📌 @wpheart❤️ قلب وردپرس

