Skip to content

Method

Add an admin page.

add_menu_item( array $args = array() )

public

Parameters

$args array Default array()
Optional. An array of arguments for adding an admin page.
$page_title string
Required. The page title.
$menu_title string
Required. The menu title.
$menu_slug string
Required. The menu slug.
$capability string
The required capability.
$function callable
The function to be called.
$parent_slug string
The parent slug.

Return

string The resulting page's hook_suffix or false if the user does not have the capability required.

Source

public function add_menu_item( $args = array() ) {
    $args = wp_parse_args(
        $args,
        array(
            'page_title'  => '',
            'menu_title'  => '',
            'menu_slug'   => '',
            'parent_slug' => 'theme-my-login',
            'capability'  => is_network_admin() ? 'manage_network_options' : 'manage_options',
            'function'    => 'tml_admin_settings_page',
        )
    );

    if ( empty( $args['page_title'] ) || empty( $args['menu_title'] ) || empty( $args['menu_slug'] ) ) {
        return;
    }

    if ( empty( $args['parent_slug'] ) ) {
        $hook = add_menu_page(
            $args['page_title'],
            $args['menu_title'],
            $args['capability'],
            $args['menu_slug'],
            $args['function'],
            isset( $args['menu_icon'] ) ? $args['menu_icon'] : ''
        );
    } else {
        $hook = add_submenu_page(
            $args['parent_slug'],
            $args['page_title'],
            $args['menu_title'],
            $args['capability'],
            $args['menu_slug'],
            $args['function']
        );
    }

    $this->pages[ $args['menu_slug'] ] = $hook;

    return $hook;
}

Uses

Used by

Changelog

VersionDescription
7.0 Introduced.