源码系统概览
文章正文
文字水印叠加工具是一款基于PHP与WordPress钩子机制实现的图片水印遮罩插件源码,单文件即装即用。
插件通过后台文章编辑器的元数据面板为每篇文章独立配置水印编号与位置。
采用非侵入式CSS遮罩层方案,给文章中的图片添加半透明水印遮罩而不改动原始图片文件。
源码简介
本款文字水印叠加工具源码属于PHP语言实现的WordPress插件,单一PHP文件封装全部逻辑,部署时把文件上传至wp-content/plugins目录并启用即可生效。
插件通过WordPress的add_meta_boxes与save_post钩子,在文章编辑页侧栏注入一个名为文章图片水印设置的面板,提供水印编号输入框与水印位置下拉框两个字段。
当前文章被前端访问时,插件通过the_content过滤器拦截文章正文内容,使用preg_replace匹配所有img标签并在外层包裹一个带my-watermark类名的容器div,由CSS的::after伪元素叠加半透明背景并居中显示水印编号文字。
整套实现未引入第三方图像处理库,运行时完全依赖WordPress自带的文章元数据API与浏览器CSS渲染能力,对服务器资源与图片原始文件均为零侵入。
适用场景
文字水印叠加工具适合原创图片博客、摄影作品展示站、内容资讯类站点等希望对正文图片附加版权水印或来源标识的WordPress站长使用。
对于图片销售、作品接单等需要清晰版权归属的商业摄影场景,插件可在每张作品图上覆盖独立编号水印便于追溯。
在资讯聚合、内容搬运盛行的环境下,给文章图片加半透明水印遮罩能在不破坏原图的前提下抑制盗用与未授权转载。
功能亮点
1、非破坏性水印遮罩:通过CSS ::after伪元素叠加水印层,完全不修改原始图片文件,便于二次开发与版本回退。
2、每篇文章独立配置:在文章编辑器侧栏提供水印编号与位置下拉框,按文章粒度灵活指定,区别于全局统一水印方案。
3、三档水印位置预设:内置居中、左上、左下三种位置选项,覆盖大部分文章图片的水印需求。
4、安全输入输出:输入字段使用sanitize_text_field清洗,输出字段使用esc_attr转义,并校验current_user_can编辑权限,杜绝XSS与越权写入。
5、自动保存检测:保存逻辑对DOING_AUTOSAVE与权限不足的情况均提前返回,避免WordPress自动保存过程覆盖用户输入。
技术架构与部署指南
| 维度 | 本套源码 | 同类通用方案 |
|---|---|---|
| 技术栈 | 前端:文章正文HTML + CSS遮罩层(position:absolute、::after伪元素、rgba半透明背景) | 依具体方案选型,需自行搭建与维护 |
| 部署方式 | 将Text Overlay Watermark.php文件上传至WordPress站点的wp-content/plugi | 多托管于第三方平台或订阅云服务 |
| 功能侧重 | 1、非破坏性水印遮罩:通过CSS ::after伪元素叠加水印层,完全不修改原始图片文件,便于二次开发与版本回退。 | 功能通用,定制深度有限 |
| 数据归属 | 数据自持,部署在自有服务器,不出站 | 数据通常留存于服务商侧 |
| 成本模式 | 获取后自主部署,无持续授权费用 | 通常按订阅或调用量计费 |
技术栈与运行环境
前端:文章正文HTML + CSS遮罩层(position:absolute、::after伪元素、rgba半透明背景)
后端:PHP 7.0+(WordPress插件钩子add_meta_boxes、save_post、the_content)
数据库:MySQL(依托WordPress自带的wp_postmeta文章元数据表,无独立表结构)
运行环境:WordPress 5.0及以上版本,PHP 7.0或更高版本,无需Node.js、Composer等额外组件
其他依赖:仅依赖WordPress内核API,无需任何第三方PHP包或图像处理扩展
安装与部署提示
将Text Overlay Watermark.php文件上传至WordPress站点的wp-content/plugins/text-overlay-watermark目录,然后在后台插件管理页面启用文章图片水印插件。
启用后打开任意一篇文章的编辑器,在右侧侧边栏会看到文章图片水印设置面板,填写水印编号(如订单号、作品编号、来源标识),并选择水印位置(居中、左上、左下),点击更新文章即可保存配置。
访问该文章的前台页面即可看到所有正文图片被叠加半透明水印遮罩,水印文字显示为编号xxx,无需修改主题模板,对其他插件无侵入。
截图与演示说明
下面是文章编辑器中文章图片水印设置元数据面板的实际运行截图,可以看到水印编号输入框默认填充示例值213213、水印位置下拉框默认选中左下一档,前台访问文章时所有图片会被自动叠加带编号的半透明遮罩层。

核心模块清单:插件头信息块(声明名称、版本、协议)、文章编辑页元数据面板注入模块(my_watermark_plugin_add_meta_box)、元数据保存模块(my_watermark_plugin_save_post)、前台水印渲染模块(my_watermark_plugin_add_watermark),四个函数即构成完整插件主流程。
常见问题
问:水印会影响原图的SEO抓取吗?
答:不会。
水印是通过CSS ::after伪元素叠加的遮罩层,原图文件未被修改,搜索引擎抓取时仍然能正确识别原图地址与alt信息。
问:能否给文章里的某些图片单独关闭水印?
答:本版本未提供按图片粒度关闭水印的开关,水印统一作用于the_content过滤器处理范围内的全部img标签。
如需排除特定图片,可在二次开发时扩展preg_replace回调,对特定class名跳过包裹。
问:水印位置能否支持右上、右下?
答:本源码内置的位置选项为居中、左上、左下三档。
若需要新增右上或右下,可在switch分支追加case,并在$watermark_style字符串中追加对应的top、left、right、bottom偏移即可。
安全风险提示
本源码经代码审计与安全扫描,未检测到eval、base64_decode、shell_exec、混淆加密、后门植入、硬编码密钥等典型风险特征。
代码遵循WordPress官方安全实践,$_POST字段均经sanitize_text_field清洗,输出经esc_attr转义,保存动作通过current_user_can校验权限并对DOING_AUTOSAVE提前返回,整体实现符合最小权限原则。
特别提示:本源码未检测安全风险文件,下载后请务必进行安全审计,删除恶意代码后再部署使用!
下载说明
源码仅供学习研究、测试部署和二次开发参考,商用前请自行确认授权、版权和安全风险。
本源码遵循GPLv2或更高版本开源协议,保留原作者署名与协议链接,二次分发时须沿用相同协议并显著标注修改内容。
下载后的PHP文件建议先用专业编辑器核查头部插件元信息与钩子挂载点,再上传至测试站点验证启用流程,确认功能符合预期后再部署到正式生产环境,避免直接覆盖在已有插件目录导致旧版本残留。