引言
相信做文章、小说等类型博客的博主会有个很头疼的地方
就是一个付费会员截图绕过复制粘贴泄露文章导致收入下降
作用
在看到自己的文章泄露,可以溯源查出到底是谁泄露的
搭配手机号注册、实名认证、禁用开发者工具(F12)和Ctrl+U
网站服务配置nignx反爬虫、nignx禁用view-source协议
可以实现精准溯源,后续可以依法起诉追究责任
应用
此处初始化设定只应用到文章,如需自定义请修改此处
is_singular('post')
输出
- 输出昵称
- 输出UID
- 输出邮箱【取前后4位】保证隐私
- 浏览的时间
此处初始化设定只输出以上4项,如需自定义请修改此处
$current_user = wp_get_current_user();
$user_id = $current_user->ID; // 获取用户昵称
$user_name = $current_user->display_name; // 获取用户昵称
$user_email = $current_user->user_email; // 注意:直接显示邮箱可能违反隐私政策
如果需要输出用户的IP地址,可以在运行代码$new_time上方添加以下代码
if (isset($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif (isset($_SERVER['HTTP_X_FORWARDED'])) {
$ip = $_SERVER['HTTP_X_FORWARDED'];
} elseif (isset($_SERVER['HTTP_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_FORWARDED_FOR'];
} elseif (isset($_SERVER['HTTP_FORWARDED'])) {
$ip = $_SERVER['HTTP_FORWARDED'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
效果
代码
运行代码
添加位置:站点根目录/wp-content/zibll/func.php
如果没有func.php文件,请自行新建,并添加标头
<?php
在func.php文件最下方添加运行代码
// 全站文章防盗水印
function output_watermark()
{
$new_time = date('Y-m-d H:i:s', time());
if (is_singular('post')) {
echo '<div id="watermark">';
// 计数器变量
$row_count = 0;
$reverse_display = false; // 标记是否反向显示
$current_user = wp_get_current_user();
$user_id = $current_user->ID; // 获取用户昵称
$user_name = $current_user->display_name; // 获取用户昵称
$user_email = $current_user->user_email; // 注意:直接显示邮箱可能违反隐私政策
for ($i = 1; $i <= 300; $i++) {
// 准备要输出的内容
$output = '';
// 根据反向显示标记构建输出字符串
if ($reverse_display) {
$output = '浏览时间:' . $new_time . ' 邮箱:' . substr($user_email, 0, 4) . '****' . substr($user_email, -4) . ' UID:' . $user_id . ' 用户:' . $user_name . ' ';
} else {
$output = '用户:' . $user_name . ' UID:' . $user_id . ' 邮箱:' . substr($user_email, 0, 4) . '****' . substr($user_email, -4) . ' 浏览时间:' . $new_time . ' ';
}
// 输出内容
echo $output;
// 每4条记录后添加一个换行符(但不在第4条后添加额外的换行,所以这里用 % 4 != 0 判断)
if ($row_count % 4 == 0 && $row_count != 0) {
echo '<br>'; // 注意:这里实际上是在每组的最后一条记录后添加换行,但由于循环会继续,所以下一条记录会紧接着输出
}
// 每8条记录改变一次反向显示标记
if ($row_count % 4 == 0) {
$reverse_display = !$reverse_display; // 切换反向显示标记
}
// 更新计数器
$row_count++;
}
echo '</div>';
}
}
add_action('wp_footer', 'output_watermark');
// 全站文章防盗水印
样式代码
添加到后台子比主题设置—>自定义代码—>自定义CSS样式
/* 全站文章防盗 */
#watermark {
position: fixed;
bottom: -200%;
left: 0%;
transform-origin: bottom left;
transform: rotate(-45deg);
color: rgba(2, 250, 142, 0.1);
font-size: 20px;
font-weight: bold;
white-space: nowrap;
pointer-events: none;
z-index: 9999; /* 确保水印位于其他内容之上 */
}
#watermark.simple {
writing-mode: horizontal-tb; /* 水平书写(默认) */
text-orientation: mixed; /* 混合方向(默认)或根据需要设置 */
white-space: nowrap; /* 防止文字换行 */
transform: rotate(-45deg) translate(-50%, -100%); /* 旋转并调整位置,但注意这可能需要进一步微调 */
/* 注意:translate的值可能需要根据你的具体需求和布局进行调整 */
}
/* 全站文章防盗 */
© 版权声明
52mjj提供的所有内容仅供学习与交流。通过使用本站内容随之而来的风险以及法律责任与本站无关,所承担的法律责任由使用者承担。
THE END
暂无评论内容