WordPress文章防复制代码

通过下面的JS代码,可以有效地防止别人直接复制拷贝你的文章,用frame标签引用你的文章时,会自动跳转到文章正常链接,同时禁止右键菜单。

使用方法一:

打开当前主题头部模

板header.php找到:<?php wp_head(); ?>将下面代码添加到后面:

<script>
// 禁止右键www.wwttl.com提供学习
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' );
}

代码中加了判断,管理员登录状态一下,防复制代码无效。

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

JS代码提取自:CopyRightPro插件

相关推荐
程序菜鸟营6 分钟前
nvm安装详细教程(安装nvm、node、npm、cnpm、yarn及环境变量配置)
前端·npm·node.js
bsr198317 分钟前
前端路由的hash模式和history模式
前端·history·hash·路由模式
杨过姑父43 分钟前
ES6 简单练习笔记--变量申明
前端·笔记·es6
Sunny_lxm1 小时前
<keep-alive> <component ></component> </keep-alive>缓存的组件实现组件,实现组件切换时每次都执行指定方法
前端·缓存·component·active
远方 hi2 小时前
linux虚拟机连接不上Xshell
开发语言·php·apache
咔咔库奇2 小时前
【TypeScript】命名空间、模块、声明文件
前端·javascript·typescript
寰宇软件2 小时前
PHP防伪溯源一体化管理系统小程序
小程序·uni-app·vue·php
m0_748233642 小时前
【PHP】部署和发布PHP网站到IIS服务器
android·服务器·php
兩尛2 小时前
订单状态定时处理、来单提醒和客户催单(day10)
java·前端·数据库
又迷茫了2 小时前
vue + element-ui 组件样式缺失导致没有效果
前端·javascript·vue.js