با عرض سلام و وقت به خیر خدمت کاربران سایت پی وی لرن به ویژه کاربرانی که به سیستم مدیریت محتوای قدرتمند وردپرس علاقمند هستند.
به ” دوره متخصص وردپرس ” خوش آمدید!
در این دوره قرار است توسعه و ارتقاء پلاگین های وردپرس را به صورت جامع و کامل بیاموزیم.
فرقی نمی کند که در شرف نوشتن اولین پلاگین خود هستید و یا این که پنجاهمین پلاگین خود را می نویسید! امیدوارم این دوره برایتان مفید باشد.
در جلسه گذشته آموختیم که چگونه می توان از منوهای سطح بالا در ساخت یک پلاگین استفاده کرد.
در این جلسه سر فصل کوتاه کار با منوهای مدیریتی را با آموزش استفاده از منوهای فرعی در ساخت پلاگین به پایان می بریم.
برای افزودن یک منوی فرعی جدید به مدیریت WordPress ، از تابع ()add_submenu_page استفاده کنید.
1 2 3 4 5 6 7 8 | add_submenu_page( string $parent_slug, string $page_title, string $menu_title, string $capability, string $menu_slug, callable $function = '' ); |
در این مثال می خواهیم یک منوی زیر “گزینه های WPOrg” را به منوی سطح بالا “Tools” اضافه کنیم.
اولین قدم ایجاد تابعی خواهد بود که به تولید HTML می پردازد.
در این تابع ، بررسی های امنیتی لازم را انجام داده و گزینه هایی را که با استفاده از API تنظیمات ثبت کرده ایم ، ارائه خواهیم داد.
توصیه می کنیم با استفاده از <div> در یک کلاس wrap، اقدام به بستن HTML خود نمایید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | function wporg_options_page_html() { // check user capabilities if (!current_user_can('manage_options')) { return; } ?> <div class="wrap"> <h1><?= esc_html(get_admin_page_title()); ?></h1> <form action="options.php" method="post"> <?php // output security fields for the registered setting "wporg_options" settings_fields('wporg_options'); // output setting sections and their fields // (sections are registered for "wporg", each field is registered to a specific section) do_settings_sections('wporg'); // output save settings button submit_button('Save Settings'); ?> </form> </div> <?php } |
مرحله دوم ثبت نام در فهرست WPOrg است.
ثبت نام باید در طول هوک اکشن admin_menu رخ دهد.
1 2 3 4 5 6 7 8 9 10 11 12 | function wporg_options_page() { add_submenu_page( 'tools.php', 'WPOrg Options', 'WPOrg Options', 'manage_options', 'wporg', 'wporg_options_page_html' ); } add_action('admin_menu', 'wporg_options_page'); |
بهتر است هنگامی که توابع کمکی داریم و این توابع parent_slug$ را برای وردپرس، منوهای سطح بالا را تعریف می کند؛ به صورت دستی به دنبال کد منبع بگردیم.
در ادامه لیستی از parent slugs ها و توابع کمکی آن ها ارائه شده است :
index.php
edit.php
upload.php
edit.php?post_type=page
edit-comments.php
themes.php
plugins.php
users.php
tools.php
options-general.php
settings.php
link-manager.php
– requires a plugin since WP 3.5edit.php?post_type=wporg_post_type
settings.php
روند از بین بردن منوهای فرعی دقیقاً مشابه با حذف منوهای سطح بالا است.
روند رسیدگی به ارسال فرم در منوهای فرعی دقیقاً مشابه با ارسال فرم در منوهای سطح بالا است.
()add_submenu_page به همراه تمام توابع آن برای زیر منوهای از پیش تعریف شده (add_dashboard_page ، add_posts_page و غیره) یک هوک hookname$ را برمی گرداند ، که می توانید به عنوان اولین پارامتر add_action به منظور رسیدگی به ارسال فرم ها در صفحات سفارشی استفاده کنید :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | function wporg_options_page() { $hookname = add_submenu_page( 'tools.php', 'WPOrg Options', 'WPOrg Options', 'manage_options', 'wporg', 'wporg_options_page_html' ); add_action( 'load-' . $hookname, 'wporg_options_page_html_submit' ); } add_action('admin_menu', 'wporg_options_page'); |
به خاطر داشته باشید که باید تمام بررسی های لازم را بصورت دستی انجام دهید ، از جمله :
فصل منو های مدیریتی را با نحوه استفاده از منوهای فرعی در ساخت پلاگین به پایان می بریم.
در جلسه بعدی فصل شورت کدهای پلاگین را آغاز می نماییم.
با پی وی لرن همراه باشید.