如何在用户元中保存ID列表


How can I save a list of ids in user meta?

我正试图在用户元中保存一个相当于id小列表的内容,但由于某种原因,我只能保存最近的访问。我的做法明显有问题吗?

function check_visit() {
    $user = get_current_user_id();
    $post_visits = get_user_meta($user, 'post_visits', true);
    $visited = explode(",",$post_visits);
    $id = (string)the_ID();
    if($id && !in_array($id, $visited)) {
        $visited[] = $id;
        update_user_meta($user, 'post_visits', implode(",", $visited));
    }
    print_r(implode(",",$visited));
}

实际

$visited[] = $id 

是正确的!

问题是您使用的是the_ID()函数,该函数打印ID,不返回任何值。

正确的函数应该是get_The_ID()

你的代码应该是这样的:

function aw_check_visit(){
    $user = get_current_user_id();
    $post_visits = get_user_meta($user, 'post_visits', true);
    $visited = explode(",",$post_visits);
    $id = (string)get_the_ID();
    if($id && !in_array($id, $visited)) {
        $visited[] = $id;
        update_user_meta($user, 'post_visits', implode(",", $visited));
    }
}

您需要使用array_push,而不是像现在这样将其添加到数组中。

更改此

 $visited[] = $id; 

array_push($visited, $id);