首页 问答 正文

如何在WordPress中实现网站的图片和内容版权保护?

注册会员 / 悠然自学 / 2023-07-11/ 浏览 125 次

在WordPress中,可以采取以下措施来实现图片和内容的版权保护:

  1. 禁止右键保存图片:通过在网站上添加一段JavaScript代码,可以禁止右键保存图片。在主题的functions.php文件中添加以下代码:
function disable_right_click() {
    if (is_single()) { // 仅在文章页面禁用右键点击保存图片
        echo '<script>
            document.addEventListener("contextmenu", function(e) {
                e.preventDefault();
            });
        </script>';
    }
}
add_action('wp_footer', 'disable_right_click'); 
  1. 添加水印:通过添加水印来保护图片的版权。可以使用一些插件,如WordPress插件“Easy Watermark”,使你能够在上传图片时自动添加水印。此外,还可以使用以下代码手动添加水印:
function add_watermark($attachment_ID) {
    $attachment_data = wp_get_attachment_metadata($attachment_ID);
    $upload_dir = wp_upload_dir();
    $original_file = $upload_dir['basedir'] . '/' . $attachment_data['file'];

    if (strpos($original_file, '/watermarked/') !== false) {
        // 水印已添加,无需重复操作
        return;
    }

    // 水印图片路径
    $watermark_file = get_stylesheet_directory() . '/images/watermark.png';
    $watermark_image = imagecreatefrompng($watermark_file);

    // 根据原始图片类型创建一个新的图像
    switch ($attachment_data['image_type']) {
        case 'image/jpeg':
        case 'image/jpg':
            $original_image = imagecreatefromjpeg($original_file);
            break;
        case 'image/png':
            $original_image = imagecreatefrompng($original_file);
            break;
        case 'image/gif':
            $original_image = imagecreatefromgif($original_file);
            break;
        default:
            return $attachment_ID;
    }

    // 设置水印位置
    $watermark_pos_x = $attachment_data['width'] - imagesx($watermark_image) - 10;
    $watermark_pos_y = $attachment_data['height'] - imagesy($watermark_image) - 10;

    // 合并原始图片和水印图片
    imagecopy($original_image, $watermark_image, $watermark_pos_x, $watermark_pos_y, 0, 0, imagesx($watermark_image), imagesy($watermark_image));

    // 输出到文件
    $watermarked_dir = $upload_dir['basedir'] . '/watermarked/';
    wp_mkdir_p($watermarked_dir);

    $watermarked_file = $watermarked_dir . $attachment_data['file'];
    switch ($attachment_data['image_type']) {
        case 'image/jpeg':
        case 'image/jpg':
            imagejpeg($original_image, $watermarked_file, 100);
            break;
        case 'image/png':
            imagepng($original_image, $watermarked_file, 9);
            break;
        case 'image/gif':
            imagegif($original_image, $watermarked_file);
            break;
    }

    // 更新附件元数据
    $attachment_data['file'] = str_replace($upload_dir['subdir'], '/watermarked' . $upload_dir['subdir'], $attachment_data['file']);
    wp_update_attachment_metadata($attachment_ID, $attachment_data);

    return $attachment_ID;
}
add_filter('wp_generate_attachment_metadata', 'add_watermark'); 

此代码会在上传图片时将水印添加到原始图片中,并将新图片保存到“/wp-content/uploads/watermarked/”目录,以避免替换原始图片。

  1. 禁止复制和粘贴内容:可以使用插件,如WordPress插件“WP Content Copy Protection & No Right Click”,该插件可以禁止复制和粘贴网站内容。安装后,插件会自动生效,无需额外代码。

  2. 添加版权声明:可以在文章的底部添加版权声明,提醒访问者尊重内容的版权。可以在文章模板的single.php文件中添加以下代码:

<div class="copyright">
    &copy; <?php echo date('Y'); ?> Your Website Name. All rights reserved. Unauthorized use and/or duplication of this material without express and written permission from this site’s author and/or owner is strictly prohibited.
</div> 

上述代码会在文章底部添加一个带有版权声明的区域。

请注意,在某些情况下,这些措施可能无法完全阻止其他用户复制或保存图片和内容,但可以增加对版权的保护。

大家谈论
    我的见解