如何在用户元中保存id列表?

时间:2015-04-08 22:37:07

标签: php wordpress

我正在尝试保存用户元数据中的一小部分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));
}

2 个答案:

答案 0 :(得分:1)

实际上

$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));
    }
}

答案 1 :(得分:-1)

您需要使用array_push而不是像往常一样将其添加到数组中。

更改此

 $visited[] = $id; 

array_push($visited, $id);