投稿の人気度を測定するコードがあります。過去24時間にユーザーがこの投稿にアクセスしていないかどうかを確認するにはどうすればよいですか。ユーザーと訪問した投稿ごとにCookieを設定する必要がありますか?私
$count = get_post_meta($post_id, 'popular_posts', true);
if(user-didnt-visited-this-page-in-last-24-hours) :
$count++;
update_post_meta($post_id, $count_key, $count);
endif;
注意!このコードはテストされていません。
<?php
function my_visitor_cookie($post_id) {
if ( empty($post_id) ) {
global $post;
$post_id = $post->ID;
}
// get post meta
$count = get_post_meta($post_id, 'unique_post_visits', true);
// if there was no meta value
if( empty($count) ) {
$count = 0;
}
// check if cookie was already set (cookie name for the current post)
if( !isset($_COOKIE['my_visitor_' . $post_id]) ) {
// set visitor cookie if it is not set already
setcookie(
'my_visitor_' . $post_id, // cookie name for the current post
$post_id, // any value, shot in the dark
DAY_IN_SECONDS // WordPress time constant
);
// increase count
$count++;
// update count
update_post_meta($post_id, 'unique_post_visits', $count);
}
}
// add_action('wp_head', 'my_visitor_cookie');
add_action('init', 'my_visitor_cookie'); // updated according to the comments