هوک فعال سازی

در ادامه آموزش افزونه وردپرس، درمورد هوک فعال سازی بحث خواهد شد. هوک های وردپرس درواقع فانکشن هایی هستند که با استفاده از آنها کدهای نوشته شده توسط برنامه نویسان را به هسته وردپرس منتقل می کند. با استفاده از هوک ها نیازی به دستکاری در فایل های اصلی وردپرس نیست.

هوک فعال سازی

انواع هوک های وردپرس انواع هوک های وردپرس

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

بالا ↑

هوک فعال سازی هوک فعال سازی

هوک فعال سازی فانکشن تعریف شده را حین فعال شدن افزونه از داشبورد اجرا می کند. از این فانکشن می توانید برای تعریف جداول پایگاه داده، گزینه ها، ایجاد پست های سفارشی و … استفاده کنید.

بالا ↑

نحوه اجرا نحوه اجرا

کد زیر را در فایل اصلی افزونه خود قرار دهید. (همان فایلی که مشخصات افزونه و هدر ها را قرار داده اید)

register_activation_hook( __FILE__, 'wpvar_activate_plugin' );

بعد کلیک روی فعال سازی افزونه توسط کاربر، فانکشن wpvar_activate_plugin اجرا خواهد شد. نام این فانکشن را با توجه به اسم افزونه خود تغییر دهید. (به لاتین)

بالا ↑

مثال مثال

در این مثال پست سفارشی (Custom Post) ایجاد خواهیم کرد. فرض کنید که افزونه شما یک بخش جدید به نام کتاب خانه ایجاد می کند. برای ارسال نوشته داخل کتابخوانه نیازمند پست سفارشی کتاب ها هستید. ابتدا پست سفارشی کتاب ها را ایجاد می کنیم:

function wpvar_cbt_books() {
    $args = array(
        'public'    => true,
        'label'     => __( 'کتاب ها', 'textdomain' ),
        'menu_icon' => 'dashicons-book',
    );
    register_post_type( 'books', $args );
}
add_action( 'init', 'wpvar_cbt_books' );

برای اینکه بعد از فعال سازی افزونه، قوانین پیوندهای یکتا در فایل htaccess بروز شود از فانکشن flush_rewrite_rules را اجرا می کنیم:

function wpvar_plugin_activate() { 
    // اجرای فانکشن پست سفارشی
    wpvar_cbt_books(); 
    // بازسازی پیوندهای یکتا
    flush_rewrite_rules(); 
}
register_activation_hook( __FILE__, 'wpvar_plugin_activate' );

توجه داشته باشید که چون فانکشن flush_rewrite_rules توسط هوک فعال سازی اجرا می شود. فقط یکبار در پروسه فعال سازی اجرا خواهد شد که ما هم همین را می خواهیم.

صدها نوع فانکشن و عملیات را می توانید در هوک فعال سازی اجرا کنید.

جلسه بعد درمورد هوک غیرفعال سازی بحث خواهد شد.