[워드프레스] 젯팩을 이용해서 특정 포스트의 조회수를 표시하는 방법
그동안 테마나 플러그인 만들면서 특정 포스트의 조회수를 가져와 표시하는 함수를 몇 번이고 돌려막기 할 정도로 잘 쓰다가, 어느 날 갑자기 그 함수를 찾지 못 하게 되었습니다.
결국 뭐 다시 검색해서 만들기는 했는데, 나중에 또 이런 사태가 발생할 수 있으니 기록으로 남겨둡니다.
요약
- 젯팩 내장 함수인
stats_get_csv
를 이용 stats_get_csv
에post_id
조건을 투입해서 조회- 나온 결과물에서
views
를 추출해 반환해주기
함수 만들기
아주 간단한 함수이기 때문에 아래와 같이 간단하게 만들어 봅시다.
function get_pageview( $post_id ) {
if ( function_exists('stats_get_csv') ) {
$args = array(
'days' => -1,
'limit' => -1,
'post_id' => $post_id,
);
$results = get_pv( $args );
$views = $results[0]['views'];
} else {
$views = 0;
}
return $views;
}
함수 자체가 꽤 간단하죠? 그 내용을 하나씩 뜯어 보도록 합시다.
자세히 보기
함수 선언
function get_pageview( $post_id ) {
....
}
먼저 함수 자체를 만들어줍니다. 저는 기억하기 쉽도록 get_pageview()
라는 이름으로 함수를 만들어주었습니다.
그런데 여기서 중요한게, 우리의 목적은 특정 포스트의 조회수를 찾아서 표시하는 것이기 때문에, $post_id
라는 변수명으로 인수를 받아 와야 합니다.
함수 확인
function get_pageview( $post_id ) {
if ( function_exists('stats_get_csv') ) {
....
} else {
....
}
....
}
그 다음은 우리가 필요로하는 stats_get_csv
함수가 존재하는지 확인하는 과정입니다. 원래 저 함수는 우리가 과거에 조회수가 높은 포스트를 알아내기 위해서 사용했던 함수였죠.
인수 세팅
...
$args = array(
'days' => -1,
'limit' => -1,
'post_id' => $post_id,
);
...
이제 투입변수를 세팅합니다.
원래 조회수 높은 포스트 목록을 가져 올 때는 days
와 limit
만을 조건으로 넣어, 특정 기간 동안 조회수가 높은 포스트를 limit
개 만큼 가져오는 것이었는데, 여기에 post_id
조건을 추가해 특정 포스트의 조회수를 조회 할 수 있습니다.
모든 기간에 대한 조회수를 가져오기 위해 days
는 -1 로 세팅했고, limit
는 어차피 특정 포스트에 대한 내용만 가져오기 때문에 1(한 개 포스트 조회) 또는 -1(개수와 상관 없이 모든 포스트 조회) 중 아무거나 넣어도 한 개만 조회 됩니다.
심지어 0을 넣어도 결과물은 나오네요.
결과물 변수에 담기
....
$results = stats_get_csv( $args );
$views = $results[0]['views'];
....
}
이제 조회 된 내용을 $results
라는 변수에 담아 봅니다.
이 stats_get_csv
는 기본적으로 여러 개의 종목 정보를 조회해 반환해주기 때문에, 실제 해당 종목의 조회수를 얻기 위해서는 $results
라는 결과물의 가장 첫번째(index = 0) 항목에서 views
라는 키에 대응하는 값을 가져와 $views
에 담아 줍니다.
그리고 그 값을 return
해주면 작업은 끝나죠.
조회수 표시하기
<? echo get_pageview( get_the_ID() ); ?>
그리고 실제로 워드프레스 테마나 플러그인에서 해당 함수를 사용하기 위해서는 위와 같이 get_pageview()
함수의 결과물을 echo
해주면 되는데, 해당 포스트의 ID
를 투입변수로 넣어주기만 하면 됩니다.
코드 자체도 복잡하지 않고, 심플하게 원하는 결과물을 얻을 수 있네요.
끝.
댓글 남기기