My Computer · 2024/05/28 0

WordPress 图片自动添加链接到原始媒体文件

不知道是主题还是灯箱插件的问题,文章中图片默认是没有url链接的,如果能自动给文章图片添加个链接到原始大图的地址就好了 。

没有插件没有可行修改方法,还是请chatgpt大哥出马吧。

// WordPress 图片自动添加链接到原始媒体文件
add_filter('the_content', 'add_image_link_to_full_size_media_file');

function add_image_link_to_full_size_media_file($content) {
    // 匹配文章内容中的 <img> 标签
    $pattern = '/<img[^>]+wp-image-([0-9]+)[^>]*>/i';
    
    // 使用回调函数进行替换
    $content = preg_replace_callback($pattern, 'replace_img_with_link_to_full_size', $content);
    
    return $content;
}

function replace_img_with_link_to_full_size($matches) {
    // 获取图片的 ID
    $attachment_id = $matches[1];
    
    // 获取原始媒体文件的 URL
    $full_image_src = wp_get_attachment_image_src($attachment_id, 'full');
    
    if ($full_image_src) {
        $full_image_url = $full_image_src[0];
        
        // 构建新的 HTML 代码,将 <img> 标签包裹在 <a> 标签中,链接到原始图片
        $new_image_tag = '<a href="' . esc_url($full_image_url) . '" data-imgbox="imgbox">' . $matches[0] . '</a>';
        
        return $new_image_tag;
    } else {
        // 如果没有获取到 URL,则返回原始的 <img> 标签
        return $matches[0];
    }
}

文章中调用的是压缩后的小图,url地址中是原始大图。
适合我这样的懒人,直接粘贴图片过来,然后什么都不用管了。