大家好,今天我想和大家分享一下在WordPress中为图片添加水印的方法。给图片添加水印不仅可以防止盗用,还能有效提升网站的知名度。
推荐的WordPress图片水印插件
如果你觉得每次手动添加水印太麻烦,可以考虑使用插件来自动处理。WordPress平台上有许多可以实现此功能的插件,以下是我个人推荐的几款效果良好的插件。
插件推荐1:DX-Watermark
DX-Watermark是一款较早的图片水印插件,尽管作者已经六年没有更新,但其功能依然稳定。该插件支持添加文字和图片水印。

插件推荐2:image-watermark
image-watermark的一个亮点是能够为之前已上传的图片添加水印。它同样支持水印位置的设置,并允许用户控制透明度。

image-watermark的汉化版下载地址:https://www.lanzous.com/i6jzuni
插件推荐3:WPWaterMark
WPWaterMark是由国内博主老蒋开发的一个WordPress水印插件,完全中文化。
下载地址可以在GitHub上找到。
无需插件的手动水印添加方法:
如果你认为安装WordPress插件占用资源,可以通过手动创建文件的方式来实现自动添加水印,这个方法与插件的原理类似。
步骤如下:
1. 在主题目录中创建一个class文件夹,并将image.php文件放入其中。
2. 打开functions.php文件,添加以下代码:
/** * WordPress上传图片添加水印 */ function uimoban_watermark($attachment_ID) { $attachment = get_post($attachment_ID); switch($attachment->post_mime_type){ case image/jpeg: case image/png: case image/gif: require THEME_FILES . /class/image.php; $image = new image(true); $image->set(watermark.png, 1); $image->watermark($attachment->guid); break; default:return ; } } add_action(add_attachment, uimoban_watermark);
说明:$image->set(‘watermark.png’, 1); 中指定的watermark.png是水印图片,需与第一步中的data/watermark/目录下的watermark.png一致,当然你也可以根据需要进行修改。“1”代表水印位置。
在又拍云/七牛中添加水印的方法:
如果使用的是又拍云或七牛的图床,这些服务本身支持水印设置。为了在WordPress中调用带水印的图片,可以按照以下方法进行操作。
又拍云自动添加水印
1. 打开functions.php文件,添加以下代码:
/** * 又拍云图片添加水印 */ function fa_hack_image_url($matches) { $prefix = !boob; // 自定义版本或水印字符串 return $matches[1] . $matches[2] . $prefix; } function fa_image_add_watermelon( $content ){ $content = preg_replace_callback(“/(<img[^>]*src *= *[\”]?)([^\””]*)/i”, fa_hack_image_url , $content); return $content; } add_filter(the_content,fa_image_add_watermelon);
2. 然后在又拍云的水印规则设置中,配置水印。

生成的水印地址可以根据以下格式拼接URL:
/watermark/url/水印路径base64/align/southeast
其中水印路径需要进行base64编码,例如/watermark.png转换为base64后为L3dhdGVybWFyay5wbmc=,则图片的后缀为:
!/watermark/url/L3dhdGVybWFyay5wbmc=/align/southeast
align后面的参数可以根据需要调整,最简单的方式是在新建规则时直接设置。
七牛自动添加水印
1. 打开functions.php文件,添加以下代码:
add_filter(the_content, QiNiuThumbnail); function QiNiuThumbnail($content) { global $post; $pattern =”/<img(.*?)src=(|”)(.*?).(bmp|gif|jpeg|jpg|png)(|”)(.*?)>/i”; /* 下面这行代码中的300表示缩略图的大小,请根据实际需求修改 */ $replacement = <img$1src=$2$3.$4?imageMogr2/thumbnail/300x$5$6>; $content = preg_replace($pattern, $replacement, $content); /* 此处预留位置,可删除 */ return $content; }
注意:以上代码中的?imageMogr2/thumbnail/300x需要根据实际需求进行替换。
2. 在七牛后台创建新图片样式,并设置水印样式,可以是文字水印。

以上方法参考了张戈博客和fatesinger的内容。
如果觉得麻烦,你也可以考虑手动给图片添加水印,使用在线工具或Photoshop,因为有时自动添加水印可能会遮挡到图片中重要的部分。
对于电脑上批量添加水印的需求,推荐使用XnConvert这款软件:
Mac系统下批量处理图片的大小调整、加水印和旋转的方法(Windows版本也有,文章最初是以Mac为主)
