在本教學(xué)的最後一部分中,我們學(xué)習(xí)如何使用 TGM 外掛程式啟動(dòng)類別來(lái)在任何時(shí)候都需要 Envato WordPress 工具包外掛程式我們的主題正在使用中。該外掛程式允許用戶在管理員中安裝和更新購(gòu)買的主題。
下一部分將教您如何實(shí)作 Envato WordPress 工具包庫(kù),以便我們可以使用 Envato Marketplace API 定期檢查我們的主題何時(shí)有可用更新。
當(dāng)有更新可用時(shí),我們會(huì)在管理員中顯示通知,並引導(dǎo)使用者存取外掛程式進(jìn)行更新。
1.?包含工具包庫(kù)
我們首先需要將工具包庫(kù)包含在我們的專案中。下載 Envato WordPress 工具包庫(kù) ZIP 檔案。解壓縮並將資料夾 envato-wordpress-toolkit-library 複製到主題中的 inc 資料夾中。您最終應(yīng)該得到這些路徑:
- mytheme/inc/envato-wordpress-toolkit-library/class-envato-protected-api.php
- mytheme/inc/envato-wordpress-toolkit-library/class-envato-wordpress-theme-upgrader.php
#注意:您可以更改上述文件的位置以滿足您的需求?;蛘撸梢詮谋疚捻敳康南螺d連結(jié)下載完整原始碼。
2.?管理員掛鉤函數(shù)
現(xiàn)在我們可以開(kāi)始編碼了。我們將掛鉤 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.?使用工具包外掛程式資訊
工具包庫(kù)需要 Envato 使用者名稱和 API 金鑰才能運(yùn)作。由於我們?cè)谏弦粋€(gè)教程中需要 Toolkit 插件,因此我們可以使用在其設(shè)定中找到的使用者名稱和 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; }
我們需要在外部新增對(duì)應(yīng)的鉤子函數(shù)來(lái)顯示我們的管理通知:
/** * 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.定期更新檢查
工具包庫(kù)始終使用 Envato Marketplace API 檢查主題更新。這並不好,因?yàn)槊看问褂谜咴煸L管理頁(yè)面時(shí)都執(zhí)行它會(huì)顯著減慢頁(yè)面載入時(shí)間。我們只需要定期檢查更新。
每 3 小時(shí)檢查一次聽(tīng)起來(lái)是個(gè)好主意:
// 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.?檢查更新
最後,我們可以使用該函式庫(kù)檢查更新:
// 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.主題更新通知
從這一刻起,您可以選擇使用工具包庫(kù)函數(shù) $upgrader->upgrade_theme();
自動(dòng)更新主題,但是,我相信給用戶一個(gè)選擇通常是一個(gè)好主意。
我的建議是只顯示主題更新的通知,並允許用戶使用 Toolkit 外掛程式進(jìn)行更新:
// Add update alert, to update the theme if ( $updates->updated_themes_count ) { add_action( 'admin_notices', 'envato_toolkit_admin_notices' ); }
我們需要在目前函數(shù)之外顯示顯示通知的函數(shù):
/** * 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>"; }
為什麼要先使用該外掛?
您可能認(rèn)為也可以只使用 Toolkit 函式庫(kù)而不使用 Toolkit 外掛程式,然後也許只在主題選項(xiàng)中顯示我們自己的使用者名稱和 API 金鑰表單.
雖然這是完全可能做到的,但使用該插件為我們帶來(lái)了一些好處:
- 在全新主題啟動(dòng)中,如果先前已安裝 Toolkit 插件,我們的主題將自動(dòng)檢查更新。
- 我們不需要新增一組額外的表單供使用者填寫。
- 使用者可以自行更新 Toolkit 插件,因此 Marketplace API 中的變更可以應(yīng)用於 WordPress 實(shí)例,而無(wú)需任何主題指導(dǎo)。
結(jié)論
就是這樣!我們整合了 Envato WordPress 工具包外掛程式和函式庫(kù)來(lái)檢查主題更新?,F(xiàn)在,一旦市場(chǎng)中有更新可用,我們的客戶就會(huì)收到管理員通知。我們所做的最好的事情是他們可以輕鬆執(zhí)行更新而無(wú)需離開(kāi)管理員。
您可以繼續(xù)從文章上方的連結(jié)下載完整的原始程式碼。該程式碼還包含本教程前一部分中涵蓋的主題。
由於這是我的第一個(gè)教學(xué)系列,我非常感謝任何回饋、評(píng)論和建議。讓我知道你的想法!
以上是使用 Envato WordPress 工具包增強(qiáng)您的主題:庫(kù)的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6
視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)

WordPress導(dǎo)致服務(wù)器CPU使用率飆升的主要原因包括插件問(wèn)題、數(shù)據(jù)庫(kù)查詢效率低、主題代碼質(zhì)量差或流量激增。 1.首先通過(guò)top、htop或控制面板工具確認(rèn)是否為WordPress引起的高負(fù)載;2.進(jìn)入故障排查模式逐步啟用插件排查性能瓶頸,使用QueryMonitor分析插件執(zhí)行情況並刪除或替換低效插件;3.安裝緩存插件、清理冗餘數(shù)據(jù)、分析慢查詢?nèi)照I以優(yōu)化數(shù)據(jù)庫(kù);4.檢查主題是否存在過(guò)度加載內(nèi)容、複雜查詢或缺乏緩存機(jī)制等問(wèn)題,建議用標(biāo)準(zhǔn)主題測(cè)試對(duì)比並優(yōu)化代碼邏輯。按照上述步驟逐一排查可定位並解

MinifyingJavaScript文件可通過(guò)刪除空白、註釋和無(wú)用代碼來(lái)提升WordPress網(wǎng)站加載速度。 1.使用支持合併壓縮的緩存插件如W3TotalCache,在“Minify”選項(xiàng)中啟用並選擇壓縮模式;2.使用專用壓縮插件如FastVelocityMinify,提供更精細(xì)控制;3.手動(dòng)壓縮JS文件並通過(guò)FTP上傳,適用於熟悉開(kāi)發(fā)工具的用戶。注意部分主題或插件腳本可能與壓縮功能衝突,啟用後需徹底測(cè)試網(wǎng)站功能。

優(yōu)化WordPress站點(diǎn)不依賴插件的方法包括:1.使用輕量級(jí)主題,如Astra或GeneratePress,避免功能堆砌的主題;2.手動(dòng)壓縮和合併CSS、JS文件,減少HTTP請(qǐng)求;3.上傳前優(yōu)化圖片,使用WebP格式並控製文件大小;4.配置.htaccess啟用瀏覽器緩存,並接入CDN提升靜態(tài)資源加載速度;5.限製文章修訂版本並定期清理數(shù)據(jù)庫(kù)冗餘數(shù)據(jù)。

防止評(píng)論垃圾信息最有效的方式是通過(guò)程序化手段自動(dòng)識(shí)別並攔截。 1.使用驗(yàn)證碼機(jī)制(如GooglereCAPTCHA或hCaptcha)可有效區(qū)分人類與機(jī)器人,尤其適合公眾網(wǎng)站;2.設(shè)置隱藏字段(Honeypot技術(shù)),利用機(jī)器人自動(dòng)填寫特性識(shí)別垃圾評(píng)論,不影響用戶體驗(yàn);3.檢查評(píng)論內(nèi)容關(guān)鍵詞黑名單,通過(guò)敏感詞匹配過(guò)濾垃圾信息,需注意避免誤判;4.判斷評(píng)論頻率與來(lái)源IP,限制單位時(shí)間內(nèi)的提交次數(shù)並建立黑名單;5.使用第三方反垃圾服務(wù)(如Akismet、Cloudflare)提升識(shí)別準(zhǔn)確性。可根據(jù)網(wǎng)站

TransientsAPI是WordPress中用於臨時(shí)存儲(chǔ)可自動(dòng)過(guò)期數(shù)據(jù)的內(nèi)置工具,其核心函數(shù)為set_transient、get_transient和delete_transient。相比OptionsAPI,transients支持設(shè)置生存時(shí)間(TTL),適合緩存API請(qǐng)求結(jié)果、複雜計(jì)算數(shù)據(jù)等場(chǎng)景。使用時(shí)需注意key命名唯一性與命名空間、緩存“懶刪除”機(jī)制及對(duì)象緩存環(huán)境下可能不持久的問(wèn)題。典型應(yīng)用場(chǎng)景包括減少外部請(qǐng)求頻率、控制代碼執(zhí)行節(jié)奏和提升頁(yè)面加載性能。

在開(kāi)發(fā)Gutenberg塊時(shí),正確enqueue資產(chǎn)的方法包括:1.使用register_block_type指定editor_script、editor_style和style的路徑;2.在functions.php或插件中通過(guò)wp_register_script和wp_register_style註冊(cè)資源,並設(shè)置正確的依賴和版本;3.配置構(gòu)建工具輸出合適的模塊格式,並確保路徑一致;4.通過(guò)add_theme_support或enqueue_block_assets控制前端樣式的加載邏輯,確保

要添加自定義用戶字段需根據(jù)平臺(tái)選擇擴(kuò)展方式並註意數(shù)據(jù)驗(yàn)證與權(quán)限控制。常見(jiàn)做法包括:1.利用數(shù)據(jù)庫(kù)額外表或鍵值對(duì)結(jié)構(gòu)存儲(chǔ)信息;2.在前端加入輸入框並與後端集成;3.對(duì)敏感數(shù)據(jù)進(jìn)行格式校驗(yàn)和訪問(wèn)權(quán)限限制;4.更新接口及模板以支持新字段展示與編輯,同時(shí)兼顧移動(dòng)端適配和用戶體驗(yàn)。

在WordPress中添加自定義重寫規(guī)則的關(guān)鍵在於使用add_rewrite_rule函數(shù)並確保規(guī)則正確生效。 1.使用add_rewrite_rule註冊(cè)規(guī)則,格式為add_rewrite_rule($regex,$redirect,$after),其中$regex是正則表達(dá)式匹配URL,$redirect指定實(shí)際查詢,$after控制規(guī)則位置;2.需通過(guò)add_filter添加自定義查詢變量;3.修改後必須刷新固定鏈接設(shè)置;4.建議將規(guī)則放在'top'以避免衝突;5.可藉助插件查看當(dāng)前規(guī)則便於
