WordPressで特定のユーザーに特定の固定ページのみ編集を許可したい場合、どのように実現すれば良いでしょうか?本記事では、ユーザーロールと権限をカスタマイズする方法を中心に、プラグインの使用も含めて解説します。
ユーザーロールと権限の設定
まずは、ユーザーロールをカスタマイズし、特定の固定ページのみを編集できるように設定する方法です。この方法では、カスタムユーザーロールを作成し、特定の固定ページ編集権限を付与します。
カスタムユーザーロールの作成
以下のコードをfunctions.phpファイルに追加することで、新しいユーザーロールを作成します。このロールには、固定ページの編集権限だけが付与されます。
function create_custom_user_role() {
add_role(
'custom_editor',
'Custom Editor',
array(
'read' => true,
'edit_posts' => false,
'edit_pages' => true,
)
);
}
add_action('init', 'create_custom_user_role');
特定の固定ページの編集権限を付与
次に、特定のユーザーに特定の固定ページだけを編集させるように制御します。current_user_can関数を利用し、以下のコードをfunctions.phpに追加します。
function allow_specific_page_editing($caps, $cap, $user_id, $args) {
$allowed_user_id = 123; // 許可するユーザーID
$allowed_page_id = 456; // 編集を許可する固定ページのID
if ($cap === 'edit_page' && $user_id == $allowed_user_id && isset($args[0]) && $args[0] == $allowed_page_id) {
return array('edit_pages');
}
return $caps;
}
add_filter('map_meta_cap', 'allow_specific_page_editing', 10, 4);
プラグインを使用する方法
コードを使いたくない場合や、もっと手軽に設定したい場合は、プラグインを利用する方法もあります。「User Role Editor」プラグインを使用して、特定の固定ページのみ編集可能にする設定を行うことができます。
プラグインのインストールと設定
- プラグインのインストール
WordPress管理画面の「プラグイン」メニューから「User Role Editor」をインストールし、有効化します。 - ユーザーロールのカスタマイズ
Users > User Role Editor から、ユーザーに対して特定の固定ページのみ編集権限を付与するロールをカスタマイズします。
カスタム権限の付与
さらに詳細に権限を制御したい場合は、カスタム権限を追加する方法があります。これにより、特定の固定ページだけに編集権限を付与することが可能です。
カスタム権限の追加
まず、以下のコードをfunctions.phpに追加し、カスタム権限を作成します。
function add_custom_capability() {
$role = get_role('custom_editor');
$role->add_cap('edit_custom_page');
}
add_action('admin_init', 'add_custom_capability');
特定の固定ページにカスタム権限を適用
次に、以下のコードをfunctions.phpに追加し、特定の固定ページにのみ編集権限を付与します。
function allow_custom_page_edit($caps, $cap, $user_id, $args) {
if ($cap === 'edit_post' && $args[0] == 456) { // 固定ページIDを指定
$caps[] = 'edit_custom_page';
}
return $caps;
}
add_filter('map_meta_cap', 'allow_custom_page_edit', 10, 4);
まとめ
WordPressで特定のユーザーが特定の固定ページのみを編集できるようにするには、ユーザーロールと権限のカスタマイズが必要です。この記事では、コードを使った方法とプラグインを利用した方法を紹介しました。プロジェクトの要件に合わせて、最適な方法を選択してください。