作成ありがとうございます。
結果は以下のようになりました。
Static String
bool(true)
bool(true)
array(1) {
["contributor"]=>
bool(true)
}
array(1) {
["contributor"]=>
bool(true)
}
Meta by current uid
(Data)
array(1) {
[0]=>
array(1) {
["administrator"]=>
bool(true)
}
}
一応解決しました。
一時的な回避策かもしれませんが、コードを以下のように変更しました。
function synchro_roles_add ( $user_id ) {
$role = get_user_meta( $user_id, 'wp_capabilities' );
$role = $role[0];
add_user_meta( $user_id, 'wp2_capabilities', $role );
}
add_action( 'user_register', 'synchro_roles_add' );
function synchro_roles_update ( $user_id ) {
$role = get_user_meta( $user_id, 'wp_capabilities' );
$role = $role[0];
update_user_meta( $user_id, 'wp2_capabilities', $role );
}
add_action( 'profile_update', 'synchro_roles_update' );
アクションフックのinitとdie()を組み合わせてデバッグ作業できることを教示していただいたため、色々と試してみたら、どうもgetする際にもとの状態に戻らないということが判明しました。
これでいいのか分かりませんが、解決にご協力いただき、ありがとうございました。
function synchro_roles ( $user_id ) {
$role = get_user_meta( $user_id, 'wp_capabilities' );
update_user_meta( $user_id, 'wp2_capabilities', $role[0] );
}
add_action( 'user_register', 'synchro_roles' );
add_action( 'profile_update', 'synchro_roles' );
良かったです。update_user_metaは更新だけでなく新規追加もできるのでこんな感じまで削減できるかと思います
Multisite User Managementというプラグインがあるのでこれを参考にするのも良いかもしれません。全てのブログに予め設定した権限を自動付与するプラグインです。
http://wordpress.org/plugins/multisite-user-management/
>Daisuke Takahashi様
コードの改良、ありがとうございます。
ご協力いただき、本当に助かりました。
>wpmubp
ありがとうございます。
参考にさせていただきます。
こちらのフォーラムは解決とさせていただきます。
本当にありがとうございました。