WordPress添加自定义日志

在做 Wordpress 的开发时,经常碰到要通过日志来分析问题的情况,我们来称之为一下日志功能。

创建数据表

if ( is_admin() && isset( $_GET['activated'] ) && $pagenow == 'themes.php' ) {
	global $wpdb;
	$table_name = $wpdb->prefix . 'logs';
	
	if( $wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name ) {
		$sql = 'CREATE TABLE IF NOT EXISTS ' . $table_name . ' (
			ID bigint(20) NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',
			type varchar(250) NOT NULL COMMENT '类型',
			message text COMMENT '内容',
			ipaddress text NOT NULL COMMENT 'IP地址',
			time datetime NOT NULL COMMENT '时间'
		) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 COMMENT 'Yangjunwei:自定义日志信息';';
		
		require_once(ABSPATH . 'wp-admin/upgrade-functions.php');
		
		dbDelta($sql);
	}
}

调用方法

global $wpdb;
$data = array(
	'type' => '留言权限',
	'message' => '登录成功',
	'ipaddress' => $_SERVER['REMOTE_ADDR'] == '::1' ? '127.0.0.1' : $_SERVER['REMOTE_ADDR'],
	'time' => date('Y-m-d H:i:s', current_time('timestamp') ),
);
$wpdb->insert('wp_logs', $data);