아주 오래전(사이트를 막 만들었을 때), 저는 WP Postviews 플러그인을 사용하기 시작했습니다. 당시 CDN을 활성화해 두어서 방문 수를 집계할 수 없었기 때문에 「WordPress에서 CDN을 활성화하면 조회 수가 증가하지 않음」이라는 글을 작성했습니다.

지금은 HTML 캐시도 활성화했는데, 관리자 페이지에서는 방문 수가 집계되지만 프런트엔드 페이지는 여전히 새로 고침되지 않았습니다. 어쩔 수 없이 여기저기서 튜토리얼을 찾아보았고, 나중에 월택짱에서 완벽한 해결 방법을 찾았습니다. 이제 여러분과 공유하겠습니다.

해결

첫 번째 단계, 플러그인 디렉터리 /wp-content/plugins/wp-postviews에 들어가서,

postviews-cache.js 파일을 열고 내부의 모든 코드를 삭제한 다음 아래 코드를 추가하고 ctrl+s를 눌러 저장합니다.

jQuery.ajax({
    type: "GET",
    url: viewsCacheL10n.admin_ajax_url,
    data: "postviews_id=" + viewsCacheL10n.post_id + "&action=postviews",
    cache: !1
});
jQuery(document).ready(function() {
    var ajax_data = {
        action: "show_postview",
        bigfa_view: viewsCacheL10n.post_id
    };
    $.post(viewsCacheL10n.admin_ajax_url, ajax_data,
    function(data) {
        $('.show-view').html(data);
    });
    return false;
});

두 번째 단계, wp-postviews.php 파일을 열고 마지막에 아래 코드를 추가합니다.

add_action('wp_ajax_nopriv_show_postview', 'show_postview');
add_action('wp_ajax_show_postview', 'show_postview');
function show_postview(){
    $views_options = get_option('views_options');
    $ID = $_POST["bigfa_view"];
    $custom_fields = get_post_custom($ID);
    $my_custom_field = $custom_fields['views'];
    foreach ( $my_custom_field as $key => $value ) {
        echo str_replace('%VIEW_COUNT%', number_format_i18n($value), $views_options['template']);
    }
    die;
}

잘생긴 사람들은 이미 완벽하게 해결했지만, 못생긴 사람들은 아직도 고생하고 있습니다. 와하하하!