اعمال محدودیت در تعداد اجرای اکشن ها و فیلتر ها در یک صفحه
- نویسنده : webelizer در دسته بندی آموزش و هک, وردپرس
- بدون نظر و 178 بازدید
- ۹۳/۰۴/۳۱
- hook , اعمال محدودیت در اکشن ها , اکشن در وردپرس
امروز یک ایده جالب در w-shadow دیدم که فکر کردم اشتراک گذاری اش میتونه مفید باشه. فرض کنید ما یک callback برای یک اکشن نوشتیم و نمیخوایم این کالبک مون بیش از یک مرتبه اجرا بشه. به عنوان مثال ممکنه اون hook در صفحه جاری چندین بار اجرا بشه و callback ما هم حالتی هست که به ازای هر صفحه بیش از یک مرتبه نباید اجرا بشه…
خوب بدون هیچ مقدمه ای میریسم سر کد، این callback مون هست:
function sample_callback() { //some artabaz codes } add_action('hook_that_gets_called_often', 'sample_callback');
کافیه بیایم یه کلک بزنیم 🙂 و اینبار کمی هم به PHP عرض ارادتی داشته باشیم!
خیلی ساده هست. از مفهوم static استفاده میکنیم.
این رو ببینید:
function sample_callback() { static $times_run = 0; if ( $times_run++ < 1 ) { //some artabaz codes... } } add_action('hook_that_gets_called_often', 'sample_callback');
همینطور که میدونید، متغییرهای استاتیک، با پایان یافتن تابع باز هم در حافظه میمونن و این کلید حل مشکل ما هست.
امیدوارم از این نکته استفاده لازم رو برده باشید، در برخی موارد چنین حالت هایی بوجود میاد که ممکن هست این نکته مفید واقع بشه!