اگر در حال ساخت پلاگینی برای وردپرس هستید، ممکن است در صفحهی افزونهها، کنار دکمهی غیرفعالسازی برخی از پلاگینها، لینکهای دیگری مثل تنظیمات و … را مشاهده کنید. حالا شاید بخواهید برای پلاگین خود و یا شاید هر پلاگین دیگری نیز چنین چیزی قرار دهید.
روش انجام کار
فرض کنید که نام پلاگین fullkade بوده و فایلی درون آن به نام fullkade.php وجود دارد که همان فایل اجرایی پلاگین است. حالا کافیست به داخل آن رفته و کد زیر را بنویسید:
1 2 3 4 5 6 7 8 9 10 |
function my_plugin_action_links( $links ) { $links = array_merge( array( '<a href="' . esc_url( admin_url( '/options-general.php' ) ) . '">تنظیمات</a>' ), $links ); return $links; } add_filter( 'plugin_action_links_fullkade/fullkade.php', 'my_plugin_action_links' ); |
فیلتری به نام plugin_action_links_fullkade/fullkade.php تعریف کردهایم؛ که در واقع بخش fullkade/fullkade.php موجود در آن، مشخص میکند که برای چه پلاگینی قصد افزودن لینک داریم. در ادامه کالبک my_plugin_action_links را تعریف کردهایم؛ که یک ورودی به نام links دریافت میکند. links آرایهای از لینکهای موجود است؛ مثلا ممکن است قبلا لینکهای دیگری نیز توسط فیلترهای دیگر اضافهشده باشد. بصورت پیشفرض فقط لینک «غیرفعال سازی» موجود است.
از تابع array_merge استفاده کردهایم تا آرایهی جدیدی از لینکها را با آرایهی قبلی یعنی links ترکیب کنیم.آرایهی جدید شامل هرچیزی میتواند باشد که در بالا فقط شامل یک مقدار بوده و آن مقدار نیز یک المنت a میباشد. از تابع admin_url نیز برای لینکدهی بخش ادمین استفاده کردهایم که میتوانید خودتان آن را شخصیسازی کنید.
همچنین لازم به ذکر است که برای اضافه کردن لینک به انتها، بایستی جای دو ورودی array_merge را تغییر دهید.
خودکار کردن مقدار fullkade/fullkade.php در نام اکشن:
برای آنکه نیازی به نوشتن این عبارت نباشد، بایستی کد بالا را بهصورت زیر پیاده کنید:
1 2 3 4 5 6 7 8 9 10 |
function my_plugin_action_links( $links ) { $links = array_merge( array( '<a href="' . esc_url( admin_url( '/options-general.php' ) ) . '">تنظیمات</a>' ), $links ); return $links; } add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), 'my_plugin_action_links' ); |
نظرات ثبت شده بدون دیدگاه