克服这一问题的最简单方法是创建一个自定义“getter”,从用户元中提取数据,该元将“即时”检查、清理和更新如下:
首先创建一个函数来检查用户是否存在,
function does_user_exists($user_id){
global $wpdb;
$user = $wpdb->get_var( $wpdb->prepare(
"
SELECT user_login
FROM $wpdb->users
WHERE ID = %s
",
$user_id
) );
if ($user == null)
return false;
else
return true;
}
然后创建一个函数来获取元并对其进行验证,
function get_user_collab($user_id){
$update_flag = false;
$collabs = get_user_meta($user_id,\'collab_meta_key\',true);
//loop over ids and check if the user exists, if not then we remove it
foreach ((array)$collabs as $key => $uid) {
if (!does_user_exists($uid)){
unset($collabs[$key]);
$update_flag = true;
}
}
if ($update_flag)
update_user_meta($user_id,\'collab_meta_key\',$collabs);
return $collabs;
}
现在不用打电话了
get_user_meta
仅使用
get_user_collab