有一个带有前缀my\\u theme的元键列表,这些元键由用户更新。我的问题是如何仅为带有My\\u主题前缀的键获取\\u user\\u meta。尝试了通配符,但无效。
get_user_meta( $user_id, \'my_theme%\', true );
有一个带有前缀my\\u theme的元键列表,这些元键由用户更新。我的问题是如何仅为带有My\\u主题前缀的键获取\\u user\\u meta。尝试了通配符,但无效。
get_user_meta( $user_id, \'my_theme%\', true );
没有本机WordPress函数可以实现这一点,但您可以获取给定用户ID的所有元键,然后过滤所需的元键。
下面是如何为给定的$user_id
. 首先,您将获得所有用户元条目:
$all_meta = get_user_meta($user_id);
正如您在get_user_meta() docs, 因为我们要离开$key
参数为空,这将包含一个数组,其中包含给定用户的所有元条目,包括您正在查找的元条目。然后,您可以使用PHP过滤生成的数组array_filter() 作用
$only_my_theme_meta = array_filter($all_meta, function($key){
return strpos($key, \'my_theme\') === 0;
}, ARRAY_FILTER_USE_KEY);
还要注意,每个元素也是一个数组,在某些情况下,您可能希望取消对结果数组的引用,以便只获取每个结果的第一个索引:$dereferenced_array = array_map(function( $a ){
return $a[0];
}, $only_my_theme_meta);
我在用户注册后添加一个操作,以根据users meta\\u值添加另一个用户角色。使用时:add_action(\'um_after_save_registration_details\', \'custom_after_new_user_register\', 10, 2); function custom_after_new_user_register($user_id) { $user = get_user_by(\'id\', $user_id); if