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