wordpress 的滑鼠右鍵禁用設計

你可以在 WordPress 的 functions.php 檔案中加入 JavaScript 程式碼,來限制特定角色(如「商店經理」以下的使用者)無法使用滑鼠右鍵(右鍵選單)。這個功能可用於防止內容被複製或做為基本的保護手段。

步驟概覽:

  1. 檢查使用者角色。

  2. 如果角色低於「商店經理(shop_manager)」:使用 wp_footer 加入 JavaScript 禁止右鍵。

說明:

  • wp_get_current_user():取得目前登入使用者資訊。

  • in_array($role, $user->roles):判斷使用者是否擁有某角色。

  • document.addEventListener('contextmenu', ...):攔截滑鼠右鍵事件。

 注意事項:

  • 這只能防止一般使用者使用右鍵,但對於有開發技能的使用者無法完全防護(如 F12 開發者工具、直接檢查 HTML)。

  • 若需保護圖片或內容,應搭配後端防護(如圖片遮罩、Content-Security-Policy)一起使用。

 

下載

function disable_right_click_for_lower_roles() {
    if ( !is_user_logged_in() ) {
        $disable = true;
    } else {
        $user = wp_get_current_user();
        $allowed_roles = ['administrator', 'shop_manager'];

        $disable = true;
        foreach ( $allowed_roles as $role ) {
            if ( in_array( $role, $user->roles ) ) {
                $disable = false;
                break;
            }
        }
    }

    if ( $disable ) {
        add_action( 'wp_footer', function() {
            ?>
            
            <?php
        });
    }
}
add_action( 'wp', 'disable_right_click_for_lower_roles' );