我有两个WordPress站点,其SSO配置如前所述here 但是回答中的插件对我不起作用,所以我尝试编写一个代码来为第二个站点用户添加功能:
$wp_user_query = new WP_User_Query(array(\'role\' => \'author\'));
$users = $wp_user_query->get_results();
if (!empty($users)) {
foreach ($users as $user)
{
add_user_meta( $user->id, \'orewpst_capabilities\', "a:1:{s:6:\'author\';b:1;}", true );
add_user_meta( $user->id, \'orewpst_user_level\', \'2\', true );
}
}
问题是的输出结果
"a:1:{s:6:\'author\';b:1;}"
是
s:23:"a:1:{s:6:\'author\';b:1;}"
“我不知道是什么”;s: 23英寸;方法以及它出现在数据库中的原因!
update: 我想要绳子"a:1:{s:6:\'author\';b:1;}"
存储在数据库中而不进行任何更改!但不知何故,我的代码添加了一个;s: 第23条:;在它之前。
最合适的回答,由SO网友:Felipe Elia 整理而成
请尝试在不手动序列化的情况下传递值,因为WordPress将为您执行此操作:
add_user_meta( $user->id, \'orewpst_capabilities\', array( \'author\' => 1 ), true );
或
update_user_meta( $user->id, \'orewpst_capabilities\', array( \'author\' => 1 ) ); // it will create the meta data for you if it doesn\'t exist already.
The
s:23
表示您存储了一个包含23个字符的字符串。
希望有帮助!