Php 如何在user meta中保存ID列表?
我试图在用户meta中保存一个小的ID列表,但由于某些原因,我只能保存最近的访问。我的方法有什么明显的问题吗Php 如何在user meta中保存ID列表?,php,wordpress,Php,Wordpress,我试图在用户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();
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;
到
实际上
$visited[] = $id
这是正确的
问题是您正在使用_ID函数,该函数打印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,这些代码做了完全相同的事情,但我完全没有注意到$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));
}
}