0

0

使用 Envato WordPress 工具包增强您的主题:库

王林

王林

发布时间:2023-09-02 12:41:01

|

1075人浏览过

|

来源于php中文网

原创

使用 envato wordpress 工具包增强您的主题:库

在本教程的最后一部分中,我们学习了如何使用 TGM 插件激活类来在任何时候都需要 Envato WordPress 工具包插件我们的主题正在使用中。该插件允许用户在管理员中安装和更新购买的主题。

下一部分将教您如何实现 Envato WordPress 工具包库,以便我们可以使用 Envato Marketplace API 定期检查我们的主题何时有可用更新。

当有更新可用时,我们将在管理员中显示通知,并引导用户访问插件进行更新。


1. 包括工具包库

我们首先需要将工具包库包含在我们的项目中。下载 Envato WordPress 工具包库 ZIP 文件。解压缩并将文件夹 envato-wordpress-toolkit-library 复制到主题中的 inc 文件夹中。您最终应该得到这些路径:

  • mytheme/inc/envato-wordpress-toolkit-library/class-envato-protected-api.php
  • mytheme/inc/envato-wordpress-toolkit-library/class-envato-wordpress-theme-upgrader.php

注意:您可以更改上述文件的位置以满足您的需要。或者,您可以从本文顶部的下载链接下载完整源代码。


2. 管理员挂钩函数

现在我们可以开始编码了。我们将挂钩 admin_init 操作。将以下代码添加到您的 functions.php 中:

/**
 * Load the Envato WordPress Toolkit Library check for updates
 * and direct the user to the Toolkit Plugin if there is one
 */
function envato_toolkit_admin_init() {

    // Include the Toolkit Library
    include_once( get_template_directory() . '/inc/envato-wordpress-toolkit-library/class-envato-wordpress-theme-upgrader.php' );

    // Add further code here

}
add_action( 'admin_init', 'envato_toolkit_admin_init' );

3. 使用工具包插件信息

工具包库需要 Envato 用户名和 API 密钥才能工作。由于我们在上一个教程中需要 Toolkit 插件,因此我们可以使用在其设置中找到的用户名和 API 密钥字段的输入值。如果这些字段未填写,我们可以显示一条通知,要求用户在 Toolkit 插件中输入它们。

// Use credentials used in toolkit plugin so that we don't have to show our own forms anymore
$credentials = get_option( 'envato-wordpress-toolkit' );
if ( empty( $credentials['user_name'] ) || empty( $credentials['api_key'] ) ) {
    add_action( 'admin_notices', 'envato_toolkit_credentials_admin_notices' );
    return;
}

我们需要在外部添加相应的钩子函数来显示我们的管理通知:

/**
 * Display a notice in the admin to remind the user to enter their credentials
 */
function envato_toolkit_credentials_admin_notices() {
    $message = sprintf( __( "To enable theme update notifications, please enter your Envato Marketplace credentials in the %s", "default" ),
        "<a href='" . admin_url() . "admin.php?page=envato-wordpress-toolkit'>Envato WordPress Toolkit Plugin</a>" );
    echo "<div id='message' class='updated below-h2'><p>{$message}</p></div>";
}

4.定期更新检查

工具包库始终使用 Envato Marketplace API 检查主题更新。这并不好,因为每次用户访问管理页面时都执行它会显着减慢页面加载时间。我们只需要定期检查更新即可。

Jenni AI
Jenni AI

使用最先进的 AI 写作助手为您的写作增光添彩。

下载

每 3 小时检查一次听起来是个好主意:

// Check updates only after a while
$lastCheck = get_option( 'toolkit-last-toolkit-check' );
if ( false === $lastCheck ) {
    update_option( 'toolkit-last-toolkit-check', time() );
    return;
}

// Check for an update every 3 hours
if ( 10800 < ( time() - $lastCheck ) ) {
    return;
}

// Update the time we last checked
update_option( 'toolkit-last-toolkit-check', time() );

5. 检查更新

最后,我们可以使用该库检查更新:

// Check for updates
$upgrader = new Envato_WordPress_Theme_Upgrader( $credentials['user_name'], $credentials['api_key'] );
$updates = $upgrader->check_for_theme_update();

// If $updates->updated_themes_count == true then we have an update!

6.主题更新通知

从这一刻起,您可以选择使用工具包库函数 $upgrader->upgrade_theme(); 自动更新主题,但是,我相信给用户一个选择通常是一个好主意。

我的建议是只显示主题更新的通知,并允许用户使用 Toolkit 插件进行更新:

// Add update alert, to update the theme
if ( $updates->updated_themes_count ) {
    add_action( 'admin_notices', 'envato_toolkit_admin_notices' );
}

我们需要在当前函数之外显示显示通知的函数:

/**
 * Display a notice in the admin that an update is available
 */
function envato_toolkit_admin_notices() {
    $message = sprintf( __( "An update to the theme is available! Head over to %s to update it now.", "default" ),
        "<a href='" . admin_url() . "admin.php?page=envato-wordpress-toolkit'>Envato WordPress Toolkit Plugin</a>" );
    echo "<div id='message' class='updated below-h2'><p>{$message}</p></div>";
}

为什么首先使用该插件?

您可能认为也可以只使用 Toolkit 库而不使用 Toolkit 插件,然后也许只在主题选项中显示我们自己的用户名和 API 密钥表单.

虽然这是完全可能做到的,但使用该插件给我们带来了一些好处:

  1. 在全新主题激活中,如果之前已安装 Toolkit 插件,我们的主题将自动检查更新。
  2. 我们不需要添加一组额外的表单供用户填写。
  3. 用户可以自行更新 Toolkit 插件,因此 Marketplace API 中的更改可以应用于 WordPress 实例,而无需任何主题指导。

结论

就是这样!我们集成了 Envato WordPress 工具包插件和库来检查主题更新。现在,一旦市场中有更新可用,我们的客户就会收到管理员通知。我们所做的最好的事情是他们可以轻松执行更新而无需离开管理员。

您可以继续从文章上方的链接下载完整的源代码。该代码还包含本教程前一部分中涵盖的主题。

由于这是我的第一个教程系列,我非常感谢任何反馈、评论和建议。让我知道你的想法!

WPS零基础入门到精通全套教程!
WPS零基础入门到精通全套教程!

全网最新最细最实用WPS零基础入门到精通全套教程!带你真正掌握WPS办公! 内含Excel基础操作、函数设计、数据透视表等

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
class在c语言中的意思
class在c语言中的意思

在C语言中,"class" 是一个关键字,用于定义一个类。想了解更多class的相关内容,可以阅读本专题下面的文章。

788

2024.01.03

python中class的含义
python中class的含义

本专题整合了python中class的相关内容,阅读专题下面的文章了解更多详细内容。

25

2025.12.06

wordpress seo
wordpress seo

WordPress网站SEO优化方法有:1、选择一个SEO友好的主题,具有清晰的代码结构,快速的加载速度和响应式设计;2、使用SEO插件,优化你的标题标签,元描述,关键字,XML站点地图等;3、优化你的内容,内容是SEO优化的核心;4、优化你的网站速度;5、创建友好的URL;6、使用内部链接;7、优化图像;8、使用社交媒体;9、定期更新你的网站;10、监控和分析你的网站等等。

433

2023.09.18

wordpress下载后怎么安装
wordpress下载后怎么安装

安装前准备:确保服务器满足要求、获取安装文件、创建数据库。上传 wordpress 文件。创建数据库和用户。运行安装程序:选择语言、输入数据库信息、网站标题和管理员信息。安装 wordpress。安装后配置:设置永久链接、安装主题、安装插件、创建内容。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

334

2024.04.15

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

2

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

58

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

30

2026.03.04

Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

59

2026.03.03

C++高性能网络编程与Reactor模型实践
C++高性能网络编程与Reactor模型实践

本专题围绕 C++ 在高性能网络服务开发中的应用展开,深入讲解 Socket 编程、多路复用机制、Reactor 模型设计原理以及线程池协作策略。内容涵盖 epoll 实现机制、内存管理优化、连接管理策略与高并发场景下的性能调优方法。通过构建高并发网络服务器实战案例,帮助开发者掌握 C++ 在底层系统与网络通信领域的核心技术。

25

2026.03.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号