将用户的IP地址存储在WordPress数据库中

时间:2018-09-17 05:44:37

标签: wordpress plugins custom-wordpress-pages

function get_ip(){
    global $wpdb;
    $ipaddress = $_SERVER['REMOTE_ADDR'];
    $data = array('post_title'=>'Sample Title','ip_address'=>$ipaddress);
    $wpdb->insert('wp_ip_address',$data);
}
add_action('init','get_ip');

在此代码中工作正常,但用户访问我们网站IP地址上存储在数据库中多个时间的多个页面

  

预期产量

用户访问网站一次将ip地址存储在数据库中

1 个答案:

答案 0 :(得分:-1)

首先在mysql中创建表:

CREATE TABLE `wp_user_ip` (
  `id` mediumint(48) NOT NULL,
  `post_id` bigint(40) NOT NULL,
  `post_title` text NOT NULL,
  `user_ip` text NOT NULL,
  `date` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE `wp_user_ip`
  ADD PRIMARY KEY (`id`);

ALTER TABLE `wp_user_ip`
  MODIFY `id` mediumint(48) NOT NULL AUTO_INCREMENT;

第二次将此代码添加到functions.php活动主题中:

add_action('wp', function(){
    global $wpdb, $post;

    if( is_single() || is_page() ) {

    $wpdb->insert( 
    'wp_user_ip', 
    array( 
        'post_id' => $post->ID, 
        'post_title' => get_the_title($post->ID) ,
        'user_ip' => $_SERVER['REMOTE_ADDR'],
        'date' => current_time('mysql') ,
    )
);


    }

});