WordPress文章防复制代码
通过下面的JS代码,可以有效地防止别人直接复制拷贝你的文章,用frame标签引用你的文章时,会自动跳转到文章正常链接,同时禁止右键菜单。
使用方法一:
打开当前主题头部模板header.php找到:<?php wp_head(); ?>
将下面代码添加到后面:
<script> // 禁止右键 document.oncontextmenu = function() { return false }; // 禁止图片拖放 document.ondragstart = function() { return false }; // 禁止选择文本 document.onselectstart = function() { if (event.srcElement.type != "text" && event.srcElement.type != "textarea" && event.srcElement.type != "password") return false; else return true; }; if (window.sidebar) { document.onmousedown = function(e) { var obj = e.target; if (obj.tagName.toUpperCase() == "INPUT" || obj.tagName.toUpperCase() == "TEXTAREA" || obj.tagName.toUpperCase() == "PASSWORD") return true; else return false; } }; // 禁止frame标签引用 if (parent.frames.length > 0) top.location.replace(document.location); </script>
使用方法二:
上面的方法查看源代码时有些乱,可以在当前主题目录新建一个名称为copyright.js文件,将下面代码添加进去:
// 禁止右键 document.oncontextmenu = function() { return false }; // 禁止图片拖放 document.ondragstart = function() { return false }; // 禁止选择文本 document.onselectstart = function() { if (event.srcElement.type != "text" && event.srcElement.type != "textarea" && event.srcElement.type != "password") return false; else return true; }; if (window.sidebar) { document.onmousedown = function(e) { var obj = e.target; if (obj.tagName.toUpperCase() == "INPUT" || obj.tagName.toUpperCase() == "TEXTAREA" || obj.tagName.toUpperCase() == "PASSWORD") return true; else return false; } }; // 禁止frame标签引用 if (parent.frames.length > 0) top.location.replace(document.location);
然后再将下面代码添加到当前主题函数模板functions.php的最后:
function copyrightpro_scripts() { wp_enqueue_script( 'copyright', get_template_directory_uri() . '/copyright.js', array(), false ); } if (! current_user_can('level_10') ) { add_action( 'wp_enqueue_scripts', 'copyrightpro_scripts' ); }
代码中加了判断,管理员登录状态一下,防复制代码无效。
当然上面的方法,也只是忽悠一下小白,浏览器禁用JS脚本后,将失去效果。
JS代码提取自:CopyRightPro插件