跳至主要内容

WordPress网站免插件,一行代码实现:上传图片自动转为WebP格式 原创 FreeChao


 用一段php代码,免插件的方式,实现图片上传WordPress网站,自动将JPEG、PNG、GIF等转换为WebP格式图片。大大提高网站文章编辑的效率。之前我在写文章的时候,上传图片到网站的流程是先手动把本地的图片到一些站点,比如Squoosh、TinyPNG,进行WebP格式转化压缩,之后再手动上传到网站。这个过程实际上非常耗时,且机械重复没什么技术含量。一直想着有什么方法可以上传图片到网站的过程中自动就把这些活干了,省时省力。以前也尝试过一些插件,要么免费额度太少,要么过多的插件影响网站速度。 

 

  为什么要使用WebP格式的图片  

 WebP格式图片是由 Google 推出的一种现代图像格式,用来替代传统的图像格式如 JPEG、PNG、GIF 等。

 相比 JPEG、PNG和GIF,WebP 通常可以提供更小的文件大小,同时保持相似或更好的图像质量。

 较小的图片体积让网页加载更快,能够提高用户体验。快速加载的网页对 SEO(搜索引擎优化) 更好,提升网站在 Google、百度 等搜索引擎中的排名。

  自动转化WebP代码  

 代码功能说明:

  自动识别并将上传的图片jpeg、png、gif格式的图片转换为WebP格式

  图像质量为80%(如果要设置其他值,可更改代码中的 $quality = 80,建议值 70-90% )

  不保留原文件(如果要保留,删除或注释这个代码    @unlink($file_path);    )

/** * Convert Uploaded Images to WebP Format with Custom Quality */add_filter('wp_handle_upload', 'wpturbo_handle_upload_convert_to_webp');function wpturbo_handle_upload_convert_to_webp($upload) {    if (in_array($upload['type'], ['image/jpeg', 'image/png', 'image/gif'])) {        $file_path = $upload['file'];        if (extension_loaded('imagick') || extension_loaded('gd')) {            $image_editor = wp_get_image_editor($file_path);            if (!is_wp_error($image_editor)) {                // Set WebP quality (adjust as needed)$quality = 80; // Adjust between 0 (low) to 100 (high)                $image_editor->set_quality($quality); // Set quality for WebP conversion                $file_info = pathinfo($file_path);                $dirname = $file_info['dirname'];                $filename = $file_info['filename'];                $def_filename = wp_unique_filename($dirname, $filename . '.webp');                $new_file_path = $dirname . '/' . $def_filename;                $saved_image = $image_editor->save($new_file_path, 'image/webp');                if (!is_wp_error($saved_image) && file_exists($saved_image['path'])) {                    // Update the upload data to use the WebP image                    $upload['file'] = $saved_image['path'];                    $upload['url'] = str_replace(basename($upload['url']), basename($saved_image['path']), $upload['url']);                    $upload['type'] = 'image/webp';                    // Optionally delete the original file@unlink($file_path);                }            }        }    }    return $upload;}

 

 建议代码用Code Snippets、WPCode等插件进行统一管理。

  

  实际测试  

 上传前格式为PNG,大小为816kb

 

 上传后格式自动为WebP,大小为22kb,变化极其明显

  

 

评论

此博客中的热门博文

不花一分钱,用 Cloudflare Warp 免费实现科学上网 原创 W不懂安全

   在如今网络环境越来越复杂的情况下,很多人开始寻找安全、可靠、免费的科学上网方式。但动辄买 VPS、配置节点、折腾端口,对大多数人来说太麻烦。      其实你知道吗? Cloudflare 推出的      WARP       工具,只需要几步,就能让你       免费访问 Google、YouTube、ChatGPT 等国外网站       ,而且不需要任何技术背景、完全免费、跨平台支持(手机 +电脑都能用)!      如果你是学生党 / 打工人,想要上 Google 查资料、用 ChatGPT 学习、看看油管上的教程,但又不懂 VP恩、不想花钱买魔法……  

程序员的投资武器库:6 个 GitHub 顶级开源投资分析工具盘点

1. Microsoft Qlib — 微软出品的 AI 量化投资平台 🔗 GitHub: https://github.com/microsoft/qlib ⭐ 37,960 Stars | 🍴 5,894 Forks | 📄 MIT License 微软研究院出品的重量级项目。Qlib 定位为「AI 驱动的量化投资平台」,目标是用 AI 技术赋能量化研究的全流程——从探索想法到生产部署。 核心亮点: 支持多种 ML 建模范式:监督学习、市场动态建模、强化学习 内置高质量金融数据集和预处理管道 集成微软自研的 RD-Agent,可自动化研发流程 完善的文档和活跃的社区维护 适合人群: 有 Python 和机器学习基础的量化研究者,想用 AI 做系统化投资研究的开发者。 2. OpenBB — 开源版彭博终端 🔗 GitHub: https://github.com/OpenBB-finance/OpenBB ⭐ 62,276 Stars | 🍴 6,072 Forks 本榜单 Star 数最高的项目。OpenBB 的野心是做「开源版彭博终端」,为分析师、量化交易员和 AI Agent 提供统一的金融数据平台。 核心亮点: 聚合股票、期权、固定收益、经济数据等多类数据源 提供 Python SDK 和 REST API,方便集成 支持 AI Agent 直接调用,适配 LLM 时代的工作流 活跃的开发团队,持续更新中 适合人群: 需要一站式金融数据接口的开发者,想搭建自己投资分析系统的个人投资者。 3. yfinance — 最流行的雅虎财经数据接口 🔗 GitHub: https://github.com/ranaroussi/yfinance ⭐ 21,826 Stars | 🍴 3,104 Forks | 📄 Apache 2.0 如果你只想快速获取股票数据,yfinance 是最简单的选择。一行代码就能拉取历史行情、财务报表、分红记录等数据。 核心亮点: 极简 API:yf.download("AAPL") 即可获取苹果股票数据 支持批量下载、多线程加速 覆盖全球主要市场的股票、ETF、基金数据 与 Pandas 无缝集成,数据分析一步到位 适合人群: 所有需要金融市场数据的 Python 开发者,量化入门的第一个工具。...

详解 Google 账号与 Google Play 换区,看完你就明白了 原创 海外社媒ACC

               现在很多兄弟虽然解决了 Google 账号注册问题,但是对于 Google 账号的了解知之甚少。比如,你知道 Google 账号和 Google Play 的地区可以设置不一致吗?Google 账号多久未使用会被注销吗?如何安全有效地更改账号和商店地区等等疑问。