PHP code example of josantonius / wp-menu
1. Go to this page and download the library: Download josantonius/wp-menu library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
josantonius / wp-menu example snippets
WP_Menu::add($type, $data, $function, $styles, $scripts);
use Josantonius\WP_Menu;
use Josantonius\WP_Menu\WP_Menu;
$params = [
'slug' => 'searchinside-options',
'name' => __('Search Inside', 'search-iniside'),
'title' => __('Search Inside', 'search-iniside'),
'capability' => 'manage_options',
'icon_url' => '//searchinside-menu-admin.png',
'position' => 25,
];
WP_Menu::add(
'menu',
$params
);
WP_Menu::add(
'menu',
$params,
[$this, 'run_page']
);
WP_Menu::add(
'menu',
$params,
[$instance1, 'run_page'],
[$instance3, 'load_styles']
);
WP_Menu::add(
'menu',
$params,
[$instance1, 'run_page'],
[$instance3, 'load_styles'],
[$instance3, 'load_scripts']
);
WP_Menu::add(
'menu',
$params,
[$instance1, 'run_page'],
false,
[$instance3, 'load_scripts']
);
$params = [
'slug' => 'searchinside-options',
'parent' => 'searchinside-options',
'name' => __('Options', 'search-iniside'),
'title' => __('Options', 'search-iniside'),
'capability' => 'manage_options',
];
WP_Menu::add(
'submenu',
$params
);
WP_Menu::add(
'submenu',
$params,
[$this, 'run_page']
);
WP_Menu::add(
'submenu',
$params,
[$instance1, 'run_page'],
[$instance3, 'load_styles']
);
WP_Menu::add(
'submenu',
$params,
[$instance1, 'run_page'],
[$instance3, 'load_styles'],
[$instance3, 'load_scripts']
);
WP_Menu::add(
'submenu',
$params,
[$instance1, 'run_page'],
false,
[$instance3, 'load_scripts']
);
class Sample_Class {
public function __construct() {
add_action( 'wp_menu_pre_add_menu_page', [ $this, 'before_add_menu' ] );
add_action( 'wp_menu_after_add_menu_page', [ $this, 'after_add_menu' ] );
add_action( 'wp_menu_pre_add_submenu_page', [ $this, 'before_add_submenu' ] );
add_action( 'wp_menu_after_add_submenu_page', [ $this, 'after_add_submenu' ] );
}
public function run_page() {
echo 'Response from run_page method';
}
public function add_styles() {
echo 'Response from add_styles method';
}
public function add_scripts() {
echo 'Response from add_scripts method';
}
public function before_add_menu() {
echo 'Response from wp_menu_pre_add_menu_page action';
}
public function after_add_menu( $hook_suffix ) {
echo 'Response from wp_menu_after_add_menu_page action';
echo 'Hook suffix: ' . $hook_suffix;
}
public function before_add_submenu() {
echo 'Response from wp_menu_pre_add_submenu_page action';
}
public function after_add_submenu( $hook_suffix ) {
echo 'Response from wp_menu_after_add_submenu_page action';
echo 'Hook suffix: ' . $hook_suffix;
}
}
$sample_class = new Sample_Class();
/**
* Add menu
*/
$params = [
'slug' => 'plugin-options',
'name' => __( 'Plugin Name', 'plugin-slug' ),
'title' => __( 'Plugin Title', 'plugin-slug' ),
'capability' => 'manage_options',
'icon_url' => '//searchinside-menu-admin.png',
'position' => 25,
];
WP_Menu::add(
'menu',
$params,
[ $sample_class, 'run_page' ],
[ $sample_class, 'add_styles' ],
[ $sample_class, 'add_scripts' ]
);
/**
* Add submenu
*/
$params = [
'slug' => 'sub-plugin-options',
'parent' => 'plugin-options',
'name' => __( 'Plugin Name', 'plugin-slug' ),
'title' => __( 'Plugin Title', 'plugin-slug' ),
'capability' => 'manage_options',
];
WP_Menu::add(
'submenu',
$params,
[ $sample_class, 'run_page' ],
[ $sample_class, 'add_styles' ],
[ $sample_class, 'add_scripts' ]
);
# When do_action('admin_menu');
// Response from wp_menu_pre_add_menu_page action
// Response from wp_menu_pre_add_submenu_page action
// Response from wp_menu_after_add_menu_page action
// Response from wp_menu_after_add_submenu_page action
// Hook suffix: load-toplevel_page_plugin-options
// Hook suffix: plugin-name_page_sub-plugin-options
# When do_action('toplevel_page_plugin-options');
// Executed only if access the page associated with this menu.
// Response from run_page method
# When do_action('plugin-name_page_sub-plugin-options');
// Executed only if access the page associated with this submenu.
// Response from run_page method
# When do_action('load-toplevel_page_plugin-options');
// Executed only if access the page associated with this menu.
// Response from add_styles method
// Response from add_scripts method
# When do_action('load-plugin-name_page_sub-plugin-options');
// Executed only if access the page associated with this submenu.
// Response from add_styles method
// Response from add_scripts method