Add_role()と$ role-> add_cap()を使って新しいカスタムロールを設定し、既存のロールに新しい機能を追加します。
これを行うのに最適な場所はどこにあるのだろうか。明らかに私はfunctions.phpの中でまっすぐそれをすることができ、それを使って行うことができます。しかし、これがベストプラクティスですか? admin_initでこれを実行するだけでいいですか?それともinitでやるべきですか?
直接の関数呼び出しをfunctions.phpの中に落とすのではなく、initアクションフックを使用することがベストプラクティスであることが完全にはわからない.
あなたの入力をありがとう!
add_role
または->add_cap
関数を使用するときにロールと機能がデータベースに保存されるため、ロールと機能を追加するときにコードを1回実行するだけでよいので、Andyがこの種のアクションにafter_setup_theme
を使用できるが、何らかのチェックを追加できる register_activation_hook のように、またはオプションを使用して、一度だけ実行されます。
add_action('after_setup_theme','my_add_role_function');
function my_add_role_function(){
$roles_set = get_option('my_roles_are_set');
if(!$roles_set){
add_role('my_role', 'my_roleUser', array(
'read' => true, // True allows that capability, False specifically removes it.
'edit_posts' => true,
'delete_posts' => true,
'upload_files' => true
));
update_option('my_roles_are_set',true);
}
}
プラグインの場合、これにplugins_loaded
を使用することに成功しました。テーマにはafter_setup_theme
を使います。