WP Cron 是什麼?使用免費的 WP Crontrol 插件管理預排程事件

在本文中,我將介紹 WP Cron 和免費的 WP Crontrol 插件。許多用戶甚至不知道 WordPress 有一个預定事件(wp cron)、更不知道它是如何工作的以及它的局限性。但是,出於於故障排除和站點維護目的,我們需要調整 wp cron,幸運的是現在有了 WP Crontrol,WP Crontrol 有一个很友好的界面來設置 wp cron。

免費的 WP Crontrol 插件

wp crontrol on wordpress org

WP CronTrol 是 WordPress 的一个免費插件。它由 John Blackborne 創建,他是備受推崇的 Query Monitor 插件的作者。您可以看到 WP CronTrol 会定期更新。它有超過 200,000 次活躍安裝。它有很多五星級的評價,開發者在支持論壇中很活躍。

wp crontrol website

你可以在 WP CronTrol 的網站查看他的文檔。這是一個百分百免費的插件,這個網站上幾乎有你需要的所有信息,所以當你使用這個插件時,如果你有問題,那麼很容易跳到这里找到答案。

wp crontrol on github

此插件是在 GitHub 上開發的,即使這個插件已經存在了一段時間,你會看到它仍在積極開發中。

關於 WP Cron

about wp cron

現在讓我們來談談 WP Cron 是什麼。Cron 這個詞來自希臘拉丁語,意思是時間,所以 Cron 事件是預定事件。

Linux 和 Unix Windows 伺服器具有定時任務作為其操作系統的一部分。甚至台式機和筆記本電腦也內置了調度程序。Windows、Mac 有一个內置的定時任務,這就是操作系統定時檢查更新的方式。因此,計算機系統有一個定時程序是很常見的。對於 WordPress,cron 同樣用於檢測更新和一些其他任務。但是,計算機中的定時任務與 WordPress 上的定時任務之間的區別在於,定時任務在計算机上是一直在運行並定期檢查。而使用 WordPress,定時任務僅在頁面加載時運行,通常是在訪問者訪問網站時運行。

計算機與 WordPress 定時任務之間的這種差異很重要,原因有幾個。有些網站由於某些原因,它們不會獲得大量流量。這樣定時任務可能無法被激活,有些人會去他們的托管控制面板或他們的 VPS 控制面板,那裡通常有一個定時任務程序,您可以在其中安排 WordPress cron cron 使用計算機定時任務程序而不是 WordPress cron 定時任務運行。這樣即使網站沒有人訪問,但是定時任務仍然會運行,並且您可以在 WP 配置文件中關閉 WordPress cron,您可以将 WordPress cron 定時任務功能遷移到伺服器。這是更高級的方式,不過這不是本文討論的內容。

現在您可能已經建立了一個 WordPress 網站,而且已經運行了一段時間,甚至可能從未意識到有 WP cron 這樣的東西。我提到這一點是因為大多數時候 WP cron 只是在幕後按照它應該的方式運行,這不是你真正需要擔心的問題。但是,如果你一直在安裝和卸載很多插件,這些插件可能會註冊一個 cron 任務,因此那裡可能有一個孤立的,這可能會減慢你的網站速度,或者可能有一個任務正在運行,它正在創建一個 PHP 錯誤。因此,有時您可能希望將 WP cron 作為維護或故障排除的一部分進行檢查,這就是這個插件真正有用時候。

那麼你可能想知道這些神秘的 WP cron 事件從何而來?其中許多是 由 WordPress 核心本身添加的,根據我的經驗,如果您刪除核心 WordPress cron 事件,WordPress 會自動將其添加回來。但是其他 cron 事件是由插件和主題添加的。

wp cron in the database

WP cron 事件儲存於 options 表中。您會看到所有 Cron 課程都列在這一行中,它是一個自動載入選項,這意味著當訪客訪問網站並啟動頁面請求的生命週期時,當自動載入為 Yes,WordPress 會將其自動載入記憶體中。你可以看到這是一條很長的記錄,你真的不希望這裡有不必要的任務。但是我們通過數據庫很難對 cron 課程進行管理,這也是為什麼要使用 WP Crontrol 的原因

plugins installed on test website

現在我們看一個具體的例子

圖中的網站使用 Blocky 主题。插件中有多級自定義字段,多合一的 WP 迁移,BBQ 防火牆和 fluent auth 插件。 security ninja 插件已被停用

WP Crontrol 插件本身也已安裝。

cron schedules

我們先來查看 WP Crontrol 內的 cron 排程,這些是您可以選擇 WordPress cron 活動開始的時間。好的,您會看到 WordPress 本身已經定義了一個小時、12 小時、一天和一周作為 cron 事件時間,然後一個插件添加了一個每月的 cron 事件。在這裡您可以添加自己的運行時間,在左邊的「新增 cron 排程」裡設定名稱、時間和顯示名稱,然後點擊添加按鈕即可。

以此方式加入 cron 排程時,它取決於 WP Crontrol 這個插件,如果你禁用或刪除了 wp Crontrol,這個排程也就不存在了

scheduled events

現在我們來看 cron 事件,帶有小 WordPress 圖標的事件是由 WordPress 核心添加的,這裡的操作包括清理過期的 key,檢查 WordPress 版,刪除舊的過期隱私導出文件,刪除過期的瞬態,刪除自動草稿,多合一的 WordPress 遷移導出清理,插件和主題的更新檢查,健康檢查、刪除臨時更新程序備份和 ACF 健康檢查。

job options

然後我們這裡有兩個沒有操作的任務,它們來自那個 Security Ninja 插件。我想向您展示有時如何獲得孤立的任務,因此我禁用了該插件,但任務仍保留在此處。現在你可以將它刪除掉,但請注意,你只能刪除由插件或主題添加的或你自己添加的 cron 事件,不能刪除 WordPress 核心 cron 事件,插件不允許這樣做

鈴針的暫停功能是插件的開發者添加的一個特性,因為很多時候如果你刪除了一個事件,比如一個核心事件或甚至一個插件或主題事件,它可能會被重新添加,比如如果插件重新啟動了什麼的。暫停該鈴針的作用是任務仍然會存在於列表中,但動作不會觸發,實際上不會執行,所以什麼都不會發生。這是一種如果需要暫停任務的話可以做到的方法。

editing a cron event

如果我去查看其中一個事件,通過編輯它,你會看到有鈴鐺名稱,它使用小寫和底線,如果操作接受參數,你可以添加參數以傳遞給操作,同時可以設定時間。

adding a regular cron event

還有一件事我想展示給你,那就是插件為你提供了一個添加定時事件的界面。你可以有一個標準的定時事件,其中你調用一个鈴鐺。你可以在自定義插件或主題的 functions.php 中定義一個鈴鐺名稱,然後將該鈴鐺名稱放在那裡,以及任何參數和你想要的運行時間。

adding a url cron event
adding a php cron event

WP Crontrol 還添加了一個 PHP cron 事件選項,您可以在其中放置自定義 PHP 代码,以及一個 URL cron 事件,您可以在其中點擊 URL 來執行某些操作,這是 WP Crontrol 添加的兩種類型的特殊 cron 事件。

scheduling a page in the future

當我們建立文章時,當您轉到發佈選項時,您實際上可以安排未來發佈文章,所以在此台電腦上是 12:17,所以讓我們將其更改為要在 12:30 發佈文章。

future page publish cron event

在 cron 事件中我們已經可以看到預定發布的文章。

分享你的喜愛

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *