Header Ads Widget

Responsive Advertisement

Ticker

6/recent/ticker-posts

Add Custom Menu in Admin Panel | WP Plugin Development: Class 4

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

}














Post a Comment

0 Comments