Category: PHP

wordpress admin – create a page without it appearing in the side menu

Set the parent_slug property to null, example;

add_submenu_page( 
           null,            // -> Set to null - will hide menu link
          'Page Title',    // -> Page Title
          'Menu Title',    // -> Title that would otherwise appear in the menu
          'administrator', // -> Capability level
          'menu_handle',   // -> Still accessible via admin.php?page=menu_handle
          'page_callback' // -> To render the page
    );

This will hide the sub menu page from your parent (top level) menu link.

That’s it. If you have any query then comment here.

Add new menu items to wordpress admin by using custom plugin

To add an menu items to administration menu then you must do three things:

1. create function for building menu

function my_plugin_menu() {
	add_options_page( 'My Plugin Options', 'My Plugin', 'manage_options', 'my-unique-identifier', 'my_plugin_options' );
}

2. Register the above function using the admin_menu action hook.

add_action( 'admin_menu', 'my_plugin_menu' );

3. Create the HTML output for the page displayed when the menu item is clicked

function my_plugin_options() {
	if ( !current_user_can( 'manage_options' ) )  {
		wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
	}
	echo '<div class="wrap">';
	echo '<p>Here you can put your own HTML code</p>';
	echo '</div>';
}

That’s it. If you have any query then comment here.

Create table while activating the custom wordpress plugin

If you want create a database table while a activating the plugin then you have to register_activation_hook() function. The following code can be placed in your main plugin file. The function will create tables in your Database.


function myplugin_install() {
    global $wpdb; 
    $table_name = $wpdb->prefix . "mytable";
    $db_version = '1.0';
    /**Execute the sql statement to create table**/
    $sql = "CREATE TABLE IF NOT EXISTS " . $table_name . " (
        `ID` int(11) NOT NULL AUTO_INCREMENT,
        `field1` varchar(300) DEFAULT NULL,
		`field2` varchar(300) DEFAULT NULL,
		`field3` varchar(300) DEFAULT NULL,
		`field4` varchar(300) DEFAULT NULL,
		`field5` varchar(300) DEFAULT NULL,
		 PRIMARY KEY (`ID`));"; 
    require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    dbDelta($sql);
    add_option( "db_version", '1.0' );  
}
// plugin activation hook
register_activation_hook(__FILE__,'myplugin_install');

Then activate your plugin.If already activated then reactivate the plugin. It automatically create table in your database. That’s it.

Have any doubt, then comment here!

Difference between wp_insert_user() and wp_create_user()

There is no difference between wp_insert_user() and wp_create_user(). The entire source of wp_create_user() is given below

function wp_create_user($username, $password, $email = '') {
    $user_login = esc_sql( $username );
    $user_email = esc_sql( $email    );
    $user_pass = $password;

    $userdata = compact('user_login', 'user_email', 'user_pass');
    return wp_insert_user($userdata);
}

It just calls insert version almost immediately, basically a shorthand wrapper.