仅对某些用户使用水印图像

时间:2017-01-14 作者:danjah

我有一件很简单的事情想要实现,或者至少我认为是这样。这就是问题/挑战:

我的客户将要出售的图像上传到WordPress网站。除原始图像外的所有图像都设置为带水印,但上的原始大小保持不变。也许这很好我已经查找了各种各样的现有插件,但似乎没有任何水印插件能够解决这个简单的事实。要么你必须在所有内容上加水印,让客户在购买图像时在照片上涂满可爱的绘画艺术,要么不在全分辨率图像上加水印,让每个人只要有一点点WordPress技能就可以免费下载图像。

我该如何克服这一点?有没有办法让全分辨率图像遵循裁剪图像以外的其他命名模式?我尝试使用add_image_size(), 然后将原始的全尺寸设置为带水印,但没有运气。很明显,不会创建相同的图像,因为文件名当然也会相同,这是不可能的。

有什么建议吗?

1 个回复
最合适的回答,由SO网友:danjah 整理而成

通过使用插件,我找到了一种可行的解决方案Image Watermark 由dfactory提供。

该插件有一个备份所有上传内容的选项,通过检查设置,它会将所有照片上传两次,并在/wp-content/uploads/iw-backup/. 我所做的是为上传图像的所有版本启用水印,包括完整版本。然后让登录用户从备份位置下载全分辨率图像。不太理想,但至少位置不是那么明显。

对于任何想做同样事情的人,我必须在插件代码中注释掉一行代码才能使其正常工作。为了保护图像,插件创建了一个。htaccess文件以确保其安全。删除它将使它工作一次,直到它再次创建它。

注释掉第138行image-watermark.php 为了防止这种情况发生:

file_put_contents( IMAGE_WATERMARK_BACKUP_DIR . DIRECTORY_SEPARATOR . \'.htaccess\', \'deny from all\' );
要将访问者发送到正确的位置,您必须构建正确的url。这看起来像:

$folder = wp_upload_dir();
echo $folder[\'baseurl\'] . \'/iw-backup\' . $folder[\'subdir\'] . \'/\' . $image[\'filename\'];

相关推荐

Remove <p></p> after images

我对<p></p> 出现在my之后的标记<img....>. 以下是我在本地主机上查看生成的页面时显示的内容。。。<img src=\"/wp-content/themes/wunderful/assets/images/feedback-danielle.png\" alt=\"Danielle Johnson Deal Town FC Treasurer\"> <p></p> 请注意随机生成的<p>&