با عرض سلام و وقت به خیر خدمت کاربران سایت پی وی لرن به ویژه کاربرانی که به سیستم مدیریت محتوای قدرتمند وردپرس علاقمند هستند.
به ” دوره متخصص وردپرس ” خوش آمدید!
در این دوره قرار است توسعه و ارتقاء پلاگین های وردپرس را به صورت جامع و کامل بیاموزیم.
فرقی نمی کند که در شرف نوشتن اولین پلاگین خود هستید و یا این که پنجاهمین پلاگین خود را می نویسید! امیدوارم این دوره برایتان مفید باشد.
در جلسه گدشته آموختیم که از هوک های فعال سازی و غیر فعال سازی استفاده نماییم و چگونه این هوک ها را راه اندازی نماییم.
در ادامه این دوره به آموزش حذف متودهای پلاگین می پردازیم.
گاهی نیاز است پلاگینی را از سایت خود حذف کرده و پاک سازی نماییم.
اگر یک کاربر یک پلاگین را غیر فعال کرده و سپس در بخش ادمین وردپرس بر لینک حذف آن کلیک نماید؛ آن پلاگین حذف خواهد شد.
وقتی پلاگین حذف شد؛ لازم است گزینه های وابسته به آن و تنظیمات و نهاده های پایگاه داده مرتبط با آن را نیز حذف نمایید.
گاهی پیش می آید که توسعه دهندگان کم تجربه برای حذف یک پلاگین از قلاب غیر فعال سازی استفاده می کنند.
این کار اشتباه است.
بیایید نگاهی به تفاوت استفاده از این دو توجه نماییم:
سناریو | غیر فعال سازی هوک | حذف هوک |
تراز Cache/Temp | بله | خیر |
تراز پرمالینک | بله | خیر |
حذف آپشن ها از {$wpdb->prefix_options} | خیر | بله |
حذف جداول از wpdb | خیر | بله |
برای راه اندازی هوک حذف، از تابع () register_uninstall_hook استفاده نمایید.
1 | register_uninstall_hook(__FILE__, 'pluginprefix_function_to_run'); |
برای استفاده از این متود شما باید فایل uninstall.php را در داخل پوشه ریشه پلاگین خود ایجاد کنید.
این فایل جادویی زمانی که کاربران پلاگین را حذف می کند به صورت خودکار اجرا می شود .
به عنوان مثال: plugin-name/uninstall.php/
هنگام استفاده از uninstall.php قبل از اجرا، افزونه باید همیشه بخش WP_UNINSTALL_PLUGIN را در constant برای جلوگیری از دسترسی مستقیم بررسی کند.
constant در وردپرس در زمان فراخوانی uninstall.php تعریف می شود.
constant زمانی مشخص نمی شود که فرآیند حذف توسط ()register_uninstall_hook انجام شود.
در ادامه مثالی از حذف وروردی های یک آپشن و خالی کردن فضای پایگاه داده را مشاهده می نمایید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | // if uninstall.php is not called by WordPress, die if (!defined('WP_UNINSTALL_PLUGIN')) { die; } $option_name = 'wporg_option'; delete_option($option_name); // for site options in Multisite delete_site_option($option_name); // drop a custom database table global $wpdb; $wpdb->query("DROP TABLE IF EXISTS {$wpdb->prefix}mytable"); |
در این جلسه با متود حذف پلاگین آشنا شدیم و تفاوت آن را با هوک غیر فعال سازی شناختیم.
در جلسه بعد به معرفی بهترین روش های سازماندهی کدهای پلاگین می پردازیم.
با پی وی لرن همراه باشید.