โดย thatsawan » 25/10/2016 12:02 pm
การสร้าง Sub Menu หมายความว่า เราจะเพิ่ม Menu ย่อยๆ ไว้ที่เมนูหลักนั้นเอง ในการพัฒนาจะคล้ายๆ กับการเพิ่ม Menu หลักในหน้า Admin เพียงเเต่เราจะต้องระบุ parent ของ Menu ที่เราจะทำการสร้าง Sub Menu ลงไป
โค้ด: เลือกทั้งหมด
add_submenu_page( string $parent_slug, string $page_title, string $menu_title, string $capability, string $menu_slug, callable $function = '' )
ตัวอย่างการใช้งาน
ก่อนจะเพิ่ม Sub Menu
โค้ด: เลือกทั้งหมด
add_action('admin_menu', 'wpdocs_register_my_custom_submenu_page');
function wpdocs_register_my_custom_submenu_page() {
add_submenu_page(
'tools.php',
'My Custom Submenu Page',
'My Custom Submenu Page',
'manage_options',
'my-custom-submenu-page',
'wpdocs_my_custom_submenu_page_callback' );
}
function wpdocs_my_custom_submenu_page_callback() {
esc_html_e( 'Sub Menu Admin Page Test', 'textdomain' );
}
ผลที่ได้หลังจาก add sub Menu
ถ้าต้องการสร้าง Sub Menu เป็นของ Plugin Menu เราเอง สามารถทำได้ดังตัวอย่าง
โค้ด: เลือกทั้งหมด
function wpdocs_register_my_custom_menu_page(){
add_menu_page(
__( 'Custom Menu Title', 'textdomain' ),
'Custom Menu',
'manage_options',
'custompage_1',
'my_custom_menu_page',
'',//plugins_url( 'plugin-WordPress/images/icon.png' ),
1
);
}
add_action( 'admin_menu', 'wpdocs_register_my_custom_menu_page' );
function my_custom_menu_page(){
esc_html_e( 'Admin Page Test', 'textdomain' );
}
add_action('admin_menu', 'wpdocs_register_my_custom_submenu_page');
function wpdocs_register_my_custom_submenu_page() {
add_submenu_page(
'custompage_1',
'Custom Menu 2',
'Custom Menu 2',
'manage_options',
'my-custom-submenu-page',
'wpdocs_my_custom_submenu_page_callback' );
}
function wpdocs_my_custom_submenu_page_callback() {
esc_html_e( 'Sub Menu Admin Page Test', 'textdomain' );
}
สังเกตุที่ ส่วนของ parent ให้ใส่ custompage_1 เพื่อให้ Sub Menu นี้ไปอยู่ใน Menu Plugin ของเรานั้นเอง
ผลที่ได้
ศึกษาเพิ่มเติมได้ที่นี่
https://developer.wordpress.org/referen ... menu_page/
การสร้าง Sub Menu หมายความว่า เราจะเพิ่ม Menu ย่อยๆ ไว้ที่เมนูหลักนั้นเอง ในการพัฒนาจะคล้ายๆ กับการเพิ่ม Menu หลักในหน้า Admin เพียงเเต่เราจะต้องระบุ parent ของ Menu ที่เราจะทำการสร้าง Sub Menu ลงไป
[code=php]add_submenu_page( string $parent_slug, string $page_title, string $menu_title, string $capability, string $menu_slug, callable $function = '' ) [/code]
[b]ตัวอย่างการใช้งาน[/b]
ก่อนจะเพิ่ม Sub Menu
[img]http://snap.mindphp.com/index.php?view=2016Oct24_580dc5034d0aa[/img]
[code=php]add_action('admin_menu', 'wpdocs_register_my_custom_submenu_page');
function wpdocs_register_my_custom_submenu_page() {
add_submenu_page(
'tools.php',
'My Custom Submenu Page',
'My Custom Submenu Page',
'manage_options',
'my-custom-submenu-page',
'wpdocs_my_custom_submenu_page_callback' );
}
function wpdocs_my_custom_submenu_page_callback() {
esc_html_e( 'Sub Menu Admin Page Test', 'textdomain' );
}
[/code]
[b]ผลที่ได้หลังจาก add sub Menu[/b]
[img]http://snap.mindphp.com/index.php?view=2016Oct24_580dc5414b04f[/img]
ถ้าต้องการสร้าง Sub Menu เป็นของ Plugin Menu เราเอง สามารถทำได้ดังตัวอย่าง
[code=php]function wpdocs_register_my_custom_menu_page(){
add_menu_page(
__( 'Custom Menu Title', 'textdomain' ),
'Custom Menu',
'manage_options',
'custompage_1',
'my_custom_menu_page',
'',//plugins_url( 'plugin-WordPress/images/icon.png' ),
1
);
}
add_action( 'admin_menu', 'wpdocs_register_my_custom_menu_page' );
function my_custom_menu_page(){
esc_html_e( 'Admin Page Test', 'textdomain' );
}
add_action('admin_menu', 'wpdocs_register_my_custom_submenu_page');
function wpdocs_register_my_custom_submenu_page() {
add_submenu_page(
'custompage_1',
'Custom Menu 2',
'Custom Menu 2',
'manage_options',
'my-custom-submenu-page',
'wpdocs_my_custom_submenu_page_callback' );
}
function wpdocs_my_custom_submenu_page_callback() {
esc_html_e( 'Sub Menu Admin Page Test', 'textdomain' );
} [/code]
สังเกตุที่ ส่วนของ parent ให้ใส่ custompage_1 เพื่อให้ Sub Menu นี้ไปอยู่ใน Menu Plugin ของเรานั้นเอง
ผลที่ได้
[img]http://snap.mindphp.com/index.php?view=2016Oct24_580dc83593144[/img]
[b]ศึกษาเพิ่มเติมได้ที่นี่[/b]
https://developer.wordpress.org/reference/functions/add_submenu_page/