- آموزش زمان بندی رویدادها با WP Cron در وردپرس
- مقدمه ای بر توسعه افزونه
- افزونه چیست ؟
- مبانی افزونه
- نیازمندی های هدر
- درج یک مجوز نرم افزار در افزونه
- قلاب های فعال و غیر فعال سازی
- متدهای حذف در سایت های وردپرس
- امنیت افزونه
- بررسی قابلیت های کاربر
- اعتبار سنجی داده ها
- امنیت ورودی
- امنیت خروجی
- Nonce ها
- قلاب ها
- اکشن ها (Actions)
- فیلترها (Filters)
- ایجاد قلاب های سفارشی
- تاپیک های پیشرفته
- منوهای مدیریت
- منوهای سطح بالا
- زیر منوها
- کدهای کوتاه
- مبانی کدهای کوتاه
- کدهای کوتاه جفتی
- کدهای کوتاه پارامتردار
- تنظیمات
- API های تنظیمات
- ایجاد و استفاده از گزینه ها
- گزینه های تکی و آرایه ای
- صفحه تنظیمات سفارشی
- فراداده (Metadata)
- ایجاد و مدیریت فراداده نوشته
- ایجاد متاباکس های سفارشی
- دریافت فراداده
- انواع نوشته سفارشی
- ایجاد پست تایپ سفارشی
- کار با داده های پست تایپ ها
- طبقه بندی یا Taxonomy در وردپرس
- ایجاد و کار با طبقه بندی های سفارشی
- کار با متادیتا (Metadata) کاربران در وردپرس
- ایجاد و مدیریت کاربران در وردپرس
- نقش ها و قابلیت های کاربران در وردپرس
- آموزش استفاده از سرویس HTTP API در وردپرس
- آموزش استفاده از ایجکس (Ajax) در وردپرس
- آموزش استفاده از Transients برای کش کردن در وردپرس
- آموزش WP-Cron وردپرس
- آموزش استفاده از جیکوئری (jQuery) در وردپرس
- آموزش کار با PHP سمت سرور و Enqueue در وردپرس
- قلاب کردن WP-Cron وردپرس به سیستم زمان بندی سرور
حذف اکشن ها (Actions) و فیلترها (Filters)
بعضی اوقات نیاز دارید که یک تابع فراخوان را که یک افزونه یا پوسته یا خود هسته وردپرس ایجاد کرده اند را حذف کنید .
به عنوان مثال شما می توانید قابلیت های اضافی پوسته های بسیار بزرگ را غیرفعال کنید .
برای حذف یک فراخوان قلاب ، تنها به یکی از توابع remover_action() یا remove_filter() نیاز دارید .
نکته ۱ :
آرگومان های استفاده شده در این توابع باید با آرگومان های تابع فراخوانی که در add_action() و add_filter() استفاده شده اند ، باید یکسان باشد .
نکته ۲ :
شما باید صبر کنید تا ابتدا قلاب های add_action() و add_filter() مربوط به پوسته ، افزونه یا هسته وردپرس توابع فراخوانی را که می خواهید حذف کنید را ابتدا ثبت کنند .
پوسته ها یک قلاب را در فایل functions.php اضافه می کنند
function setup_slider() {
// ...
}
add_action( 'template_redirect', 'setup_slider', 9 );
حذف قلاب
از آنجا که توابع فراخوان پوسته در فایل functions.php اضافه می شوند ، قلاب های شما بعد از بارگذاری این فایل اعمال خواهند شد .
اولین قلاب بعد از اجرای فایل functions.php قلابی به نام after_setup_theme می باشد .
function remove_theme_hooks() {
remove_action( 'template_redirect', 'setup_slider', 9 ); // make sure all of the parameters match the add_action() call exactly
}
add_action( 'after_setup_theme', 'remove_theme_hooks' ); // make sure we run call remove_action() after add_action() has been called
حذف همه توابع فراخوان
شما می توانید همه توابع فراخوان مرتبط با یک قلاب را توسط توابع remove_all_actions() و remove_all_filters() را حذف کنید .
remove_all_filters( 'wp_mail', 9 );
تشخیص فیلتر جاری
بعضی اوقات شما نیاز دارید که یک تابع را روی چند قلاب اعمال کنید ، اما می خواهید این تابع رفتار متفاوتی را بر اساس قلاب جاری داشته باشد .
برای اینکار می توانید از تابع current_filter() استفاده کنید .
همانطور که از نام این تابع مشخص است ، اکشن جاری را برمی گرداند .
function abc_modify_content() {
if ( 'the_content' == current_filter() ) {
// do something
} else {
// do something else
}
}
add_filter( 'the_content', 'abc_modify_content' );
add_filter( 'the_excerpt', 'abc_modify_content' );
بررسی تعداد دفعات اجرای یک قلاب
بعضی قلاب ها در زمان اجرای وردپرس چندین بار اجرا می شوند ، این در حالی است که شما می خواهید تابع فراخوان شما تنها یکبار توسط این قلاب اجرا شود .
در اینجا ، شما می توانید توسط تابع did_action() تعداد دفعات اجرای قلاب را بدست آورید .
function foo() {
if ( 1 !== did_action( 'save_post' ) {
return;
}
// ...
}
add_action( 'save_post', 'foo' );
اشکال زدایی با قلاب all
اگر شما می خواهید تابع فراخوان شما در هر قلاب اکشن یا فیلتری اجرا شود ، می توانید آن را به اکشن all متصل کنید .
این مورد بیشتر در مواقع اشکال زدایی کاربرد دارد ، مثلاً برای تشخیص زمان رخ دادن یک رویداد خاص یا زمانی که یک صفحه دارای مشکل است .
function print_current_hook() {
echo '<p>' . current_filter() . '</p>';
}
add_action( 'all', 'print_current_hook' );






