DIY WordPress图片优化插件:自动压缩+ALT自动生成教程

昨天发了一个图片自动压缩和自动添加alt的插件视频,很多同学挺感兴趣的,其实很简单,今天就分享一下如何制作,几分钟搞定。

01:47

视频声音有很强电流声,大家静音看就行了。

制作教程

登入服务器根目录,这里以hostinger为例。

登录hostinger服务器,在面板上找到Files文件夹。或者用FTP的方式也可以。

选择file manager,点击第一个进入。

打开public_html文件夹

点击wp-content。

进入plugins插件文件夹。

创建新文件夹。

自定义命名。

在新文件夹添加新文件。

自定义命名,一定要加php,才会是php文件,能够应用。

在新文件里面输入这段代码,api要自己替换。

API获取点击下方教程。

shortpixel APIimagify API

注:如果你上传的图片已经在tinypng.com这种网站或者其他网站压缩过,那可能不会再度压缩了。

<?php
/**
 * Plugin Name: YLSSEOImage
 * Description: 自动压缩图片并填充 ALT 和 Title。
 * Version: 1.0
 * Author: Your Name
 * Author URI: https://yourwebsite.com
 */

if (!defined('ABSPATH')) exit; // 防止直接访问

// 激活插件时的初始化
function ylsseoimage_activate() {
    // 在这里可以进行插件激活时的设置
}
register_activation_hook(__FILE__, 'ylsseoimage_activate');

// 插件功能代码
function ylsseoimage_image_compression_and_alt($metadata, $attachment_id) {
    // 获取图片路径
    $image_path = get_attached_file($attachment_id);

    // 1. 压缩图片
    $compressed_image_url = ylsseoimage_compress_image($image_path);

    // 2. 获取图片 ALT 和 Title(直接使用标题)
    $post_title = get_the_title($attachment_id); // 获取图片的标题
    $alt_text = $post_title; // 使用标题作为 ALT 和 Title

    // 更新图片的 ALT 和 Title
    update_post_meta($attachment_id, '_wp_attachment_image_alt', $alt_text);
    wp_update_post(['ID' => $attachment_id, 'post_title' => $alt_text]);

    return $metadata;
}
add_filter('wp_generate_attachment_metadata', 'ylsseoimage_image_compression_and_alt', 10, 2);

// 1. 使用 ShortPixel API 压缩图片
function ylsseoimage_compress_image($image_path) {
    $api_key = "你的API"; // 替换为你的 ShortPixel API 密钥

    // 调用 ShortPixel API 压缩图片
    $url = "https://api.shortpixel.com/v2/post-reducer?key=" . $api_key;
    $file = curl_file_create($image_path);

    $response = wp_remote_post($url, [
        'body' => [
            'file' => $file,
        ]
    ]);
    $body = wp_remote_retrieve_body($response);
    $data = json_decode($body, true);

    // 返回压缩后的图片 URL
    return isset($data['compressed_url']) ? $data['compressed_url'] : $image_path;
}