플러그인 설치 없이 함수로 조회수 증가, 표시

qpress 2020년 1월 21일 55

워드프레스 포스트의 조회수를 증가시키고, 표시하기 위해서, 별도의 플러그인을 사용하는 것이 일반적인데, 많은 플러그인 설치가 부담되는 분들은 관련 함수를 사용하여, 간단하게 구현할 수도 있다.(물론 플러그인들이 제공하는 다양한 기능은 아니지만..)

사용하는 테마의 functions.php에 관련 함수를 작성하고 필요한 곳에서 사용하면 되는데, 이를 가장 잘 설명하는 사이트가 아래 사이트로 보인다.

https://www.isitwp.com/track-post-views-without-a-plugin-using-post-meta/

다만, 여기서 소개하는 함수에는 조회수 중복을 막는 개념이 없다.

쿠키를 사용하여 조회수 중복을 막는 부분을 포함한 코드는 다음과 같다.

function getPostViews($postID){
    $count_key = 'post_views_count';
    $count = get_post_meta($postID, $count_key, true);
    if($count==''){
        delete_post_meta($postID, $count_key);
        add_post_meta($postID, $count_key, '0');
        return "0";
    }
    return $count;
}
function setPostViews($postID) {
    $count_key = 'post_views_count';
    if(empty($_COOKIE[$count_key . $postID])) {
        $count = get_post_meta($postID, $count_key, true);
        if($count==''){
            $count = 1;
            delete_post_meta($postID, $count_key);
            add_post_meta($postID, $count_key, $count);
        }else{            
            $count++;
            update_post_meta($postID, $count_key, $count);
        }
        setcookie($count_key . $postID, 1, time() + (86400), "/");
    }
}
// Remove issues with prefetching adding extra views
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);

함수 사용 예제

//테마의 single.php
setPostViews(get_the_ID());

//조회수 출력 부분
echo getPostViews(get_the_ID());

1 Comments

생활코딩    2020년 1월 28일6:15 오후
덕분에 오랜 고민이 해결 되었습니다. 조회수 때문에 플러그인 설치하는게 부담 스러웠는데, 감사합니다.