最近のWordpressでは、固定ページにプライバシーポリシーページがデフォルトで作成されている。それは便利で良いのだけど、他の固定ページは編集者権限(editor)で編集できるのに、このページだけでは管理者権限でないと編集することが出来ない。
それなりにスキルのある管理者がいる会社なら良いのだが、ワープロやブログ更新ぐらいのスキルの方がいれば良い様なのが普通だ。そうすると管理者権限を制限してユーザーを作るか、編集者権限のユーザーを使ってもらうことになる。
セキュリティ関係や外観などのシステム周りなどのメニューは無い方が都合が良い場合がほとんどだ。
そうなると編集者権限のユーザーがちょうど良いのだが、ここで問題になるのがプライバシーポリシーページだ。
そこで、色々と調べた結果、以下の関数をfunctions.phpに記述することで編集者権限でもプライバシーポリシーページを編集することができる様になります。
add_action('map_meta_cap', function($caps, $cap, $user_id, $args) {
$user_meta = get_userdata($user_id);
if (!$user_meta) {
return $caps;
}
if ('manage_privacy_options' !== $cap) {
return $caps;
}
if (!array_intersect(['editor', 'administrator'], $user_meta->roles)) {
return $caps;
}
$manage_name = is_multisite() ? 'manage_network' : 'manage_options';
$caps = array_diff($caps, [ $manage_name ]);
return $caps;
}, 1, 4);
でこ家ブログ 