Beispiel #1
0
 public static function add_views($post_ID)
 {
     if ($post_ID > 0) {
         if (!wp_is_post_revision($post)) {
             switch (self::$options['count']) {
                 case 0:
                     self::$should_count = true;
                     break;
                 case 1:
                     if (!is_user_logged_in()) {
                         self::$should_count = true;
                     }
                     break;
                 case 2:
                     if (is_user_logged_in()) {
                         self::$should_count = true;
                     }
                     break;
             }
         }
         if (self::$should_count) {
             if (self::$options['check_reflash']) {
                 global $wpdb;
                 $ip = preg_replace('/[^0-9a-fA-F:., ]/', '', $_SERVER['REMOTE_ADDR']);
                 $wpdb->query('DELETE FROM ' . $wpdb->postviews_plus_reflash . ' WHERE look_time < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL ' . self::$options['timeout'] . ' SECOND)');
                 $data = $wpdb->get_var('SELECT `look_time` FROM ' . $wpdb->postviews_plus_reflash . ' WHERE `post_id` = "' . $post_id . '" AND `user_ip` = "' . $ip . '"');
                 if ($data) {
                     return;
                 }
                 $wpdb->insert($wpdb->postviews_plus_reflash, array('post_id' => $post_ID, 'user_ip' => $ip), array('%d', '$s'));
             }
             $useragent = strtolower(trim($_SERVER['HTTP_USER_AGENT']));
             $bot = false;
             if (is_array(self::$options['botagent'])) {
                 $regex = '/(' . str_replace('@@@@@@', ')|(', preg_quote(implode(self::$options['botagent'], '@@@@@@'), '/')) . ')/si';
                 $bot = preg_match($regex, $useragent);
             }
             if ($bot) {
                 $post_views = (int) get_post_meta($post_ID, self::$post_meta_botviews, true) + 1;
                 update_post_meta($post_ID, self::$post_meta_botviews, $post_views);
             } else {
                 $post_views = (int) get_post_meta($post_ID, self::$post_meta_views, true) + 1;
                 update_post_meta($post_ID, self::$post_meta_views, $post_views);
             }
         }
     }
 }