如何在WordPress中禁止右键「图片另存为」或「在新标签页打开图片」
我完全懂你的诉求——没必要一刀切禁用右键(毕竟这是浏览器的基础功能,搞不好会把正常用户逼走),但就是想拦住普通用户通过右键操作保存图片,同时不影响右键的其他正常使用。虽然没法彻底挡住技术流用户,但针对普通用户的防护还是有不少靠谱方法的:
用JavaScript精准拦截图片右键
可以在你的WordPress主题的functions.php里添加一段脚本,或者直接在自定义HTML区块插入,专门针对图片拦截右键菜单,不影响其他元素的右键功能。代码如下:document.addEventListener('contextmenu', function(e) { if (e.target.tagName === 'IMG') { e.preventDefault(); // 可选:给用户一个版权提示 alert('本图片受版权保护,请勿随意保存使用'); } });这个脚本会在用户右键点击图片时直接阻止默认菜单弹出,普通用户基本就懵了,很难继续操作。当然,懂点技术的用户能通过开发者工具绕过去,但咱们的目标本来就是防普通用户嘛。
给图片加水印(被动防护)
这招更实在,就算用户真的保存了图片,水印也能明确标识版权,大大降低被盗用的价值。你可以用WordPress自带的媒体编辑器给图片批量加水印,或者装个轻量的水印插件(选那种功能单一、口碑好的,别装带一堆冗余功能的)。通过.htaccess限制图片直链
要是想再升级一下防护,可以修改网站根目录的.htaccess文件,只允许自己的网站引用图片,外部网站或直接访问图片地址都会被拦截。代码如下:RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC] RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]记得把
yourdomain.com换成你自己的域名。这样普通用户就算右键复制了图片地址,直接打开也看不到图片,进一步增加了保存难度。
最后得说清楚:没有任何方法能100%阻止高级用户获取图片——毕竟图片要在用户浏览器里显示,技术上总有办法拿到源文件。但上面这些方法组合起来,足以拦住绝大多数普通用户,同时还保留了右键的正常功能,不会影响网站的用户体验。
内容的提问来源于stack exchange,提问作者ram

