1- Add Custom Menu in Admin Panel
function tw_plugin_menu(){
//add main menu
// add_menu_page(string $page_title, string $menu_title, string $capability, string $menu_slug, callable $callback = '', string $icon_url = '', int|float $position = null);
add_menu_page('TW Menu Options', 'TW Menu Options', 'manage_options', 'tw_menu_options', 'tw_menu_options_func', string $icon_url = '', int|float $position = null);
//add sub menu
// add_submenu_page(string $parent_slug, string $page_title, string $menu_title, string $capability, string $menu_slug, callable $callback = '', int|float $position = null);
add_submenu_page('tw_menu_options', 'TW Menu Settings', 'TW Menu Settings', 'manage_options', 'tw_menu_settings', 'tw_menu_settings_func', int|float $position = null);
}
function tw_menu_options_func(){
echo 'Main menu page';
}
function tw_menu_settings_func(){
echo 'Settings page';}
add_action('admin_menu', 'tw_plugin_menu');
2- Existing menu mein apna menu add karnay ke leye pehle 'add' aur phir us 'page ka name' aur end mein 'page' likhna hai.
eg: add_dashboard_page(string $page_title, string $menu_title, string $capability, string $menu_slug, callable $callback = '', int $position = null);
add_dashboard_page('TW Settings Options', 'TW Settings Options', 'manage_options', 'tw_settings_options', 'tw_settings_options_func', int $position = null);
3- Settings register karnay ka tareeqa
step 1: add_action('admin_menu', 'tw_register_menu');
function tw_register_menu(){
add_menu_page('TW Menu Settings', 'TW Menu Settings', 'manage_options', 'tw_menu_options_slug', 'tw_register_menu_html', 'dashicons-key-up', 20);}
function tw_register_menu_html(){
?>
<div class="wrap">
<h2 style="background: black; color: white; padding: 10px;">
<?= esc_html( get_admin_page_title() ). ' - ' . get_option( 'test-plugin-name' ); ?>
</h2>
<?php settings_errors(); ?>
<form action="options.php" method="POST">
<?php
settings_fields('tw_like_option_group');
do_settings_sections('tw_like_option_group');
submit_button('save changes');
?>
</form>
</div>
<?php
}
step 2: add_action('admin_init', 'tw_register_settings');
function tw_register_settings(){
// register_setting(string $option_group, string $option_name, array $args = array());
register_setting('tw_like_option_group', 'tw_like_setting_name');
// add_settings_section(string $id, string $title, callable $callback, string $page, array $args = array());
add_settings_section('tw_section_id', 'TW LIKE SYSTEM', 'tw_section_cb', 'tw_page_slug_name');
// add_settings_field(string $id, string $title, callable $callback, string $page, string $section = 'default', array $args = array());
add_settings_field('tw_settings_field_id', 'Like Title', 'tw_field_cb', 'tw_page_slug_name', 'tw_section_id');
}
// Call back functions
function tw_section_cb(){
echo 'TW Like Sysytem';
}
function tw_field_cb(){
// get the value of the setting we've registered with register_setting()
$setting = get_option('tw_like_setting_name');
// output the field
?>
<input type="text" name="tw_like_setting_name" value="<?php echo isset( $setting ) ? esc_attr( $setting ) : ''; ?>">
<?php
}
0 Comments