wp文章防止被复制代码


相信许多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' );
}

注:

  • wp_enqueue_script()函数里面'/copyright.js'的路径不要弄错。
  • 代码中加了判断,管理员登录状态一下,防复制代码无效。

当然上面的方法,也只是忽悠一下小白,浏览器禁用JavaScript后,将失去效果。

分享到