【WordPress】管理画面のメニューから固定ページを非表示にする方法

WordPressサイトを運営する際、特定のユーザー権限に基づいて固定ページのメニューを非表示にすることは、セキュリティやユーザー体験の向上に役立ちます。この記事では、管理者以外のユーザーから固定ページをメニューから削除する方法について詳しく説明します。

固定ページメニュー項目の削除方法

管理者以外のユーザーに固定ページメニューを表示させたくない場合、以下のコードをテーマの functions.php ファイルに追加します。

function remove_pages_menu() {
    if (!current_user_can('administrator')) {  // 管理者以外のユーザーに適用
        remove_menu_page('edit.php?post_type=page');  // 固定ページメニューを削除
    }
}
add_action('admin_menu', 'remove_pages_menu', 999);

このコードにより、管理者以外のユーザーには固定ページメニューが表示されなくなります。

固定ページサブメニュー項目の削除方法

特定の固定ページのサブメニュー項目を非表示にしたい場合は、以下のコードを使用します。

function remove_specific_pages_menu() {
    if (!current_user_can('administrator')) {  // 管理者以外のユーザーに適用
        global $submenu;
        unset($submenu['edit.php?post_type=page'][10]);  // 固定ページ追加
        unset($submenu['edit.php?post_type=page'][15]);  // 固定ページのカテゴリー
        // 他のサブメニュー項目を非表示にする場合は、上記のように unset を使用
    }
}
add_action('admin_menu', 'remove_specific_pages_menu', 999);

これにより、管理者以外のユーザーには特定のサブメニュー項目が表示されなくなります。

特定のユーザー権限に基づいて固定ページメニューを削除する方法

特定のユーザー権限に基づいてメニューを非表示にする場合、以下のコードを使用します。

function custom_remove_pages_menu() {
    if (!current_user_can('edit_others_posts')) {  // 編集者以上の権限を持つユーザーに適用
        remove_menu_page('edit.php?post_type=page');  // 固定ページメニューを削除
    }
}
add_action('admin_menu', 'custom_remove_pages_menu', 999);

このコードは、編集者以上の権限を持つユーザーにのみ固定ページメニューを表示します。

まとめ

これらのカスタムコードを使用することで、WordPressの管理画面から特定の固定ページを非表示にすることができます。ユーザーの権限に基づいてメニューを調整することで、管理画面の使いやすさとセキュリティを向上させることができます。必要に応じて、コードをカスタマイズしてみてください。