WordPress Hook动作钩子 admin_menu

WordPress Hook动作钩子 admin_menu 用于管理员页面加载的时候调用,当插件应用于管理页面时,需要用这个钩子来执行代码。

调用方法:

add_action('admin_menu','function_name');

以创建一个订单数据库为例:

<?php
/* Create database for orders */
function create_order_table(){
	global $wpdb;
	include_once(ABSPATH.'/wp-admin/includes/upgrade.php');
	$table_charset = '';
	$prefix = $wpdb->prefix;
	$order_table = $prefix.'orders';
	
	if( $wpdb->has_cap('collation') ){
		if( !empty($wpdb->charset) ){
			$table_charset = "DEFAULT CHARACTER SET $wpdb->charset";
		}
		if(!empty($wpdb->collate)) {
			$table_charset .= " COLLATE $wpdb->collate";
		}		
	}
	$create_order_sql = "CREATE TABLE $order_table (
					id int(11) NOT NULL auto_increment,
					user_id int(11) NOT NULL,
					time datetime NOT NULL default '0000-00-00 00:00:00',
					money double(10,2) NOT NULL default 0,
					balance double(10,2) NOT NULL default 0,
					status int(1) NOT NULL default 0,
					PRIMARY KEY (id)) ENGINE = MyISAM $table_charset;";
	maybe_create_table($order_table,$create_order_sql);
}
add_action('admin_menu','create_order_table');
?>

再看一个例子,插件创建管理菜单项:

add_action('admin_menu', 'wpautop_control_menu');

function wpautop_control_menu() {
  add_submenu_page('options-general.php', 'wpautop-control', 'wpautop control', 'manage_options', 'wpautop-control-menu', 'wpautop_control_options');
}