Wordpress 如何向登录用户显示他们已阅读 post

Wordpress how to show logged in users that they have read a post

有没有办法向登录用户显示他们已经阅读了 post?

即使有“标记为已读”按钮?

将以下代码添加到您的主题 function.php 文件中,保存所有用户阅读的 post 数据

add_action('wp_head', function () {
   $user_id = get_current_user_id();
   # if user is logged in 
   if (!empty($user_id)) {
       $post_id = get_the_ID();
       $user_read_post = get_user_meta($user_id, 'read_posts', true);
       if (empty($user_read_post)) {
          $user_read_post = array(); // if there is no read post 
        }

        if (!empty($post_id)) {
            array_push($user_read_post, $post_id);
        }
        $user_read_post = array_unique($user_read_post);
        update_user_meta($user_id, 'read_posts', $user_read_post);
    }
});

如何检索用户阅读 post

 $user_id = get_current_user_id();
 # if user is logged in 
   if (!empty($user_id)) {
       $user_read_post = get_user_meta($user_id, 'read_posts', true);
 }