开发文档

TextPress 开发者文档

从入门到精通,帮助你快速掌握 TextPress 开发技巧

快速开始 版本升级

版本升级

TextPress 提供了完整的版本升级 API,让你的主题和插件支持在线更新检测。

适用场景

当你在本平台发布主题或插件后,可以通过以下 API 让用户检测并下载最新版本。

检查更新接口

GET /api/update/check

检查指定产品是否有新版本可用。

请求参数

参数类型必填说明
slugstring产品唯一标识(slug)
versionstring当前安装的版本号,如 v1.0.0
typestring产品类型:theme 或 plugin,默认 theme

请求示例

HTTP
GET /api/update/check?slug=my-theme&version=v1.0.0&type=theme

响应示例

JSON
{
    "success": true,
    "has_update": true,
    "product": {
        "id": 1,
        "name": "My Theme",
        "slug": "my-theme",
        "description": "一个精美的主题"
    },
    "latest_version": "v1.2.0",
    "current_version": "v1.0.0",
    "download_url": "/uploads/versions/1/v1.2.0_1702456789.zip",
    "changelog": "1. 新增深色模式\n2. 修复若干 Bug",
    "min_version": "v1.0.0",
    "file_size": 2621440,
    "released_at": "2024-12-13 10:30:00"
}

响应字段说明

字段类型说明
successboolean请求是否成功
has_updateboolean是否有新版本
latest_versionstring最新版本号
download_urlstring下载地址(仅当有更新时返回)
changelogstring更新日志
min_versionstring最低兼容版本
file_sizeint文件大小(字节)
released_atstring发布时间

下载更新包

GET /api/update/download/{id}

下载指定产品的最新版本安装包。

路径参数

参数类型说明
idint产品 ID

请求示例

HTTP
GET /api/update/download/1

响应

成功时直接返回 ZIP 文件流,失败时返回 404 错误。

集成示例

以下是在你的主题或插件中集成更新检测的示例代码:

PHP 示例

PHP
<?php
/**
 * 检查主题更新
 */
function check_theme_update() {
    $api_url = 'https://your-site.com/api/update/check';
    $params = [
        'slug' => 'my-theme',
        'version' => 'v1.0.0',
        'type' => 'theme'
    ];
    
    $response = file_get_contents($api_url . '?' . http_build_query($params));
    $data = json_decode($response, true);
    
    if ($data['success'] && $data['has_update']) {
        // 有新版本可用
        echo "发现新版本: " . $data['latest_version'];
        echo "更新日志: " . $data['changelog'];
        echo "下载地址: " . $data['download_url'];
    }
    
    return $data;
}

// 在后台显示更新提示
add_action('admin_notices', function() {
    $update = check_theme_update();
    if ($update['has_update']) {
        echo '<div class="notice">主题有新版本 ' . $update['latest_version'] . ' 可用</div>';
    }
});

JavaScript 示例

JavaScript
// 检查更新
async function checkUpdate() {
    const response = await fetch('/api/update/check?slug=my-theme&version=v1.0.0');
    const data = await response.json();
    
    if (data.success && data.has_update) {
        console.log('发现新版本:', data.latest_version);
        console.log('更新日志:', data.changelog);
        
        // 显示更新提示
        showUpdateNotification(data);
    }
    
    return data;
}

// 下载更新
function downloadUpdate(productId) {
    window.location.href = '/api/update/download/' + productId;
}

版本号规范

版本号格式

建议使用语义化版本号,格式为 vX.Y.Z,例如 v1.0.0、v2.1.3

  • 主版本号 (X):不兼容的 API 修改
  • 次版本号 (Y):向下兼容的功能性新增
  • 修订号 (Z):向下兼容的问题修正

最佳实践

1

定期检查

建议每天或每周检查一次更新,避免频繁请求 API

2

缓存结果

将检查结果缓存到本地,减少 API 调用次数

3

备份数据

更新前建议用户备份当前版本和数据

4

版本兼容

检查 min_version 字段,确保用户当前版本满足升级要求

反馈 顶部