完整代码(添加到主题的 functions.php 中)

<?php
/**
 * AJAX 浏览量统计系统 - 完整版
 * 功能:无冲突统计、手动修改、插件兼容、实时显示
 */

// 防止直接访问
if (!defined('ABSPATH')) {
    exit;
}

/* ===== 核心功能函数 ===== */

/**
 * 获取文章浏览次数
 */
function getPostViews($postID) {
    // 优先使用 Post Views Counter 插件
    if (function_exists('pvc_get_post_views')) {
        $count = pvc_get_post_views($postID);
    }
    // 后备使用自定义字段
    else {
        $count = get_post_meta($postID, 'views', true);
        if ($count == '') {
            delete_post_meta($postID, 'views');
            add_post_meta($postID, 'views', '0');
            $count = 0;
        }
    }
    return $count . '';
}

/**
 * 手动设置浏览量
 */
function manualSetPostViews($postID, $view_count) {
    $view_count = intval($view_count);
  
    // 更新 Post Views Counter 插件
    if (function_exists('pvc_update_post_views_count')) {
        pvc_update_post_views_count($postID, $view_count);
    }
  
    // 更新自定义字段
    update_post_meta($postID, 'views', $view_count);
}

/* ===== AJAX 浏览量统计 ===== */

/**
 * 注册 AJAX 处理函数
 */
function register_ajax_post_views() {
    add_action('wp_ajax_count_post_views', 'handle_count_post_views');
    add_action('wp_ajax_nopriv_count_post_views', 'handle_count_post_views');
}
add_action('init', 'register_ajax_post_views');

/**
 * 处理 AJAX 浏览量统计请求
 */
function handle_count_post_views() {
    // 安全检查
    if (!isset($_POST['nonce']) || !wp_verify_nonce($_POST['nonce'], 'post_views_nonce')) {
        wp_die('安全验证失败');
    }
  
    if (isset($_POST['post_id'])) {
        $post_id = intval($_POST['post_id']);
      
        // 验证文章存在
        if (!get_post($post_id)) {
            wp_die('文章不存在');
        }
      
        // 使用 Post Views Counter 插件
        if (function_exists('pvc_view_post')) {
            pvc_view_post($post_id);
            $new_count = pvc_get_post_views($post_id);
        }
        // 后备使用自定义字段
        else {
            $count = get_post_meta($post_id, 'views', true);
            if ($count == '') {
                $count = 1;
                update_post_meta($post_id, 'views', $count);
            } else {
                $count = intval($count) + 1;
                update_post_meta($post_id, 'views', $count);
            }
            $new_count = $count;
        }
      
        // 返回更新后的浏览量
        wp_send_json_success(array(
            'new_count' => number_format($new_count),
            'raw_count' => $new_count
        ));
    }
  
    wp_die();
}

/**
 * 在文章页面输出 AJAX 计数脚本
 */
function ajax_post_views_counter() {
    if (is_single()) {
        $post_id = get_the_ID();
        $nonce = wp_create_nonce('post_views_nonce');
        ?>
        <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cscript%20type%3D%22text%2Fjavascript%22%3E%0A%20%20%20%20%20%20%20%20jQuery(document).ready(function(%24)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20%E5%8F%91%E9%80%81%20AJAX%20%E8%AF%B7%E6%B1%82%E7%BB%9F%E8%AE%A1%E6%B5%8F%E8%A7%88%E9%87%8F%0A%20%20%20%20%20%20%20%20%20%20%20%20%24.ajax(%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20url%3A%20'%3C%3Fphp%20echo%20admin_url('admin-ajax.php')%3B%20%3F%3E'%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20'POST'%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20data%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20action%3A%20'count_post_views'%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20post_id%3A%20'%3C%3Fphp%20echo%20%24post_id%3B%20%3F%3E'%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20nonce%3A%20'%3C%3Fphp%20echo%20%24nonce%3B%20%3F%3E'%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20success%3A%20function(response)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20(response.success)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20%E5%AE%9E%E6%97%B6%E6%9B%B4%E6%96%B0%E9%A1%B5%E9%9D%A2%E4%B8%8A%E7%9A%84%E6%B5%8F%E8%A7%88%E9%87%8F%E6%98%BE%E7%A4%BA%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24('.post-views-count').each(function()%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24(this).text(response.data.new_count)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20%20%20%3C%2Fscript%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object mce-object-script" width="20" height="20" alt="<script>" />
        <?php
    }
}
add_action('wp_footer', 'ajax_post_views_counter');

/* ===== 后台管理功能 ===== */

/**
 * 添加浏览量控制元框
 */
function add_post_views_meta_box() {
    add_meta_box(
        'post_views_control',
        '📊 浏览量控制',
        'post_views_meta_box_callback',
        'post',
        'side',
        'high'
    );
}
add_action('add_meta_boxes', 'add_post_views_meta_box');

/**
 * 元框回调函数
 */
function post_views_meta_box_callback($post) {
    wp_nonce_field('post_views_nonce', 'post_views_nonce_field');
    $current_views = getPostViews($post->ID);
    ?>
    <div style="margin-bottom: 15px;">
        <label for="post_views_count" style="display: block; margin-bottom: 5px; font-weight: bold;">
            当前浏览量:
        </label>
        <input type="number" id="post_views_count" name="post_views_count" 
               value="<?php echo esc_attr($current_views); ?>" style="width: 100%; padding: 8px;" min="0" />
    </div>
  
    <div style="background: #f7f7f7; padding: 10px; border-radius: 4px;">
        <p style="margin: 0; font-size: 12px; color: #666;">
            <strong>系统状态:</strong><br>
            <?php if (function_exists('pvc_get_post_views')): ?>
            ✅ Post Views Counter 插件已激活
            <?php else: ?>
            ℹ️ 使用内置统计系统
            <?php endif; ?>
        </p>
    </div>
    <?php
}

/**
 * 保存手动设置的浏览量
 */
function save_post_views_meta_box($post_id) {
    // 安全检查
    if (!isset($_POST['post_views_nonce_field']) || 
        !wp_verify_nonce($_POST['post_views_nonce_field'], 'post_views_nonce')) {
        return;
    }
  
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
    if (!current_user_can('edit_post', $post_id)) return;
  
    if (isset($_POST['post_views_count'])) {
        manualSetPostViews($post_id, intval($_POST['post_views_count']));
    }
}
add_action('save_post', 'save_post_views_meta_box');

/* ===== 实用工具函数 ===== */

/**
 * 显示浏览量的快捷函数
 * @param bool $format 是否格式化数字(添加千位分隔符)
 */
function the_post_views($format = true) {
    $views = getPostViews(get_the_ID());
    if ($format) {
        echo number_format(intval($views));
    } else {
        echo $views;
    }
}

/**
 * 重置文章浏览量
 */
function reset_post_views($post_id) {
    manualSetPostViews($post_id, 0);
}

/**
 * 获取最受欢迎文章
 * @param int $limit 文章数量
 * @return array 文章数组
 */
function get_popular_posts($limit = 5) {
    $args = array(
        'post_type' => 'post',
        'posts_per_page' => $limit,
        'meta_key' => 'views',
        'orderby' => 'meta_value_num',
        'order' => 'DESC',
        'meta_query' => array(
            array(
                'key' => 'views',
                'value' => '0',
                'compare' => '>'
            )
        )
    );
  
    return get_posts($args);
}

/* ===== 文章列表页增强 ===== */

/**
 * 在文章列表页添加浏览量列
 */
function add_views_column($columns) {
    $columns['post_views'] = '浏览量';
    return $columns;
}
add_filter('manage_posts_columns', 'add_views_column');

/**
 * 显示文章列表页的浏览量数据
 */
function display_views_column($column_name, $post_id) {
    if ($column_name === 'post_views') {
        echo number_format(intval(getPostViews($post_id)));
    }
}
add_action('manage_posts_custom_column', 'display_views_column', 10, 2);

/**
 * 让浏览量列可排序
 */
function views_column_sortable($columns) {
    $columns['post_views'] = 'post_views';
    return $columns;
}
add_filter('manage_edit-post_sortable_columns', 'views_column_sortable');
?>


模板调用方式

1. 基本显示(在 single.php、content.php 中)
<!-- 基本显示方式 -->
<span class="post-views-count"><?php the_post_views(); ?></span>

<!-- 带样式和图标 -->
<div class="post-meta-views">
    <i class="icon-eye"></i>
    <span class="post-views-count"><?php the_post_views(); ?></span> 次阅读
</div>


2. 热门文章小工具
<?php
$popular_posts = get_popular_posts(5);
if ($popular_posts) {
    echo '<div class="popular-posts-widget">';
    echo '<h3>热门文章</h3>';
    echo '<ul>';
    foreach ($popular_posts as $post) {
        setup_postdata($post);
        echo '<li>';
        echo '<a href="' . get_permalink() . '">' . get_the_title() . '</a>';
        echo ' <span>(' . number_format(getPostViews(get_the_ID())) . ')</span>';
        echo '</li>';
    }
    wp_reset_postdata();
    echo '</ul>';
    echo '</div>';
}
?>


使用方式

Post Views Counter设置-显示-Admin Edit -开启