You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress图像渲染前的filter/action使用:如何修改图片URL实现水印添加?

解决方案

1. 拦截wp_get_attachment_image_src()返回值修改图片URL

直接使用WordPress内置的wp_get_attachment_image_src过滤器即可实现URL修改,示例代码如下:

add_filter( 'wp_get_attachment_image_src', 'custom_watermark_image_url', 10, 4 );
function custom_watermark_image_url( $image, $attachment_id, $size, $icon ) {
    // 仅处理图片类型附件,排除图标等其他资源
    if ( ! $image || wp_attachment_is( 'image', $attachment_id ) === false ) {
        return $image;
    }
    // 原图片URL存储在$image[0]中,替换为你的水印图片生成路径
    $original_url = $image[0];
    $watermark_url = str_replace( 'wp-content/uploads', 'wp-content/uploads/watermarked', $original_url );
    // 替换返回的URL,宽高参数保持不变
    $image[0] = $watermark_url;
    return $image;
}

上述代码可放在主题的functions.php文件或者自定义插件中生效,路径替换规则可根据你的水印文件存储逻辑自行调整。

2. 通过附件URL反查附件ID,生成缩略图

如果只有wp_get_attachment_url()返回的URL,可使用attachment_url_to_postid()函数直接反查对应的附件ID,示例代码如下:

// 你已获取到的附件原始URL
$image_url = wp_get_attachment_url();
$attachment_id = attachment_url_to_postid( $image_url );
if ( $attachment_id ) {
    // 成功获取ID后即可生成指定尺寸的缩略图
    $thumbnail_src = wp_get_attachment_image_src( $attachment_id, 'thumbnail' );
}

该函数会自动匹配数据库中存储的附件路径,只要是通过WordPress标准流程上传的附件都可以正常查询到对应ID。

内容的提问来源于stack exchange,提问作者John Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 18:15:06