为此,当有人登录阅读帖子时,首先需要保存。例如,您可以在像get\\u header这样的操作中执行此操作。
add_action(\'get_header\',\'save_single_posts_to_usermeta\');
function save_single_posts_to_usermeta(){
if(is_single() && is_user_logged_in()){
$user_id = get_current_user_id();
$read_posts = get_user_meta($user_id,\'_read_posts\',true);
$most_recent_read_post = get_user_meta($user_id,\'_most_recent_post\',true);
if(!is_array($read_posts)){
$read_posts = array();
}
if(!isset($read_posts[get_the_ID()]){
$read_posts[get_the_ID()] = 1;
} else {
$read_posts[get_the_ID()] = $read_posts[get_the_ID()]+1;
}
update_user_meta($user_id,\'_most_recent_post\',get_the_ID());
update_user_meta($user_id,\'_read_posts\',$read_posts);
}
}
现在,您可以方便地在需要的地方显示它,例如使用短代码:
add_shortcode(\'most_recent_read_post\',\'show_most_recent_read_post\');
function show_most_recent_read_post($args=array()){
if(is_user_logged_in()){
$user_id = get_current_user_id();
$last_read_post = get_user_meta($user_id,\'_most_recent_post\',true);
if($last_read_post){
return "Last Read Post:".get_the_title((int)$last_read_post);
} else {
return "No posts were read yet!";
}
} else {
return "You must be logged in to view your last read post";
}
}
add_shortcode(\'most_read_post\',\'get_most_read_post\');
function get_most_read_post($args = array()){
if(is_user_logged_in()){
$user_id = get_current_user_id();
$most_read_posts = get_user_meta($user_id,\'_read_posts\',true);
if(is_array($most_read_posts) && (count($most_read_posts) > 0)){
asort($most_read_posts);
$number = reset($most_read_posts);
$post_id = key($most_read_posts);
return "Your most read post is ".get_the_title($post_id)." (".$number." times)";
} else {
return "No posts were read yet!";
}
} else {
return "You must be logged in to view your most read post";
}
}
快乐编码,Kuchenundkakao