如何管理 WordPress Cron 作業

已發表: 2021-05-14
WordPress的cron
關注@Cloudways

許多 WordPress 開發人員,尤其是初學者,都有一個共同的問題“什麼是 WordPress cron”和“如何管理 WordPress cron 作業?” 緊接著。

答案很簡單:使用我將在本文中概述的任何 WordPress cron 作業管理方法。

  • 什麼是 WordPress Cron?
  • 如何管理 WordPress Cron 作業
    • 如何使用插件管理 WordPress Cron 作業
      • 第 1 步:安裝 WP 控制插件
      • 步驟 2:查看和理解 Cron 事件
      • 第 3 步:編輯 Cron 事件
      • 步驟 4:添加自定義時間間隔
      • 第 5 步:添加新的 Cron 事件
    • 如何使用 WP CLI 管理 WordPress Cron 作業
  • 如何設置真正的 Cron 作業

Cron 是一個標準的 UNIX 實用程序,用於在特定時間、日期或間隔安排任務執行(腳本或命令)。 它要執行的任務稱為 cron 作業。 您可以猜到,cron 作業的目的是自動執行重複性任務,以便您可以更有效地利用時間。

但是,WordPress cron 作業與標準 cron 略有不同,這就是為什麼在深入研究操作和流程之前,您需要了解 WordPress cron 是什麼以及它是如何工作的。

什麼是 WordPress Cron?

WordPress 有自己的 cron 系統,用於安排任務,例如檢查更新、安排發布帖子以及從垃圾箱中刪除評論。 所有 cron 作業都由 WP-Cron 處理。

雖然名稱(和主要思想)來自 UNIX cron,但 WordPress cron 不是這樣工作的,它使用間隔進行任務調度。 WordPress 提供的默認時間間隔是每小時、每天兩次、每天和每週。 在這裡,基於時間的任務取決於訪問您網站的用戶,這意味著 WordPress cron 只有在用戶訪問您的網站時才會執行。

換句話說,WordPress cron 在頁面加載時執行。 有時這不是那麼可靠,這就是為什麼許多用戶更喜歡服務器級 cron 作業而不是 WP-Cron 作業的原因。

在本文中,我將向您展示如何管理 WordPress cron 作業並為您的 WordPress 站點設置真正的 cron 作業。

如何管理 WordPress Cron 作業

有很多方法可以設置和管理 WordPress cron 作業,但我將向您展示兩種流行的方法。

第一個使用像 WP Crontrol 這樣的 cron 管理插件,它允許您直接從 WP 儀表板添加、修改和管理 WordPress cron 作業。 您還可以創建 cron 作業、構建掛鉤和函數,並為任務定義自定義時間間隔。

第二種方法是使用 WordPress CLI。

如何使用插件管理 WordPress Cron 作業

我將使用 WP Crontrol 插件,它允許您查看和控制 WordPress 應用程序的 WordPress cron。 它是用於處理 WP cron 作業的流行插件,並且有超過 100,000 個活動安裝。
這是管理 WordPress cron 作業的最簡單方法,您可以快速查看、編輯、創建、刪除,並且可以使用 WordPress cron 事件執行更多操作。

讓我們開始吧!

第 1 步:安裝 WP 控制插件

就像任何其他插件一樣,您需要從插件存儲庫安裝 WP Crontrol 並激活它。 安裝後,您會注意到“工具”選項卡中出現了一個新選項“Cron Events”。

定時事件

步驟 2:查看和理解 Cron 事件

接下來,您需要單擊Cron Events ,您將看到在您的 WordPress 應用程序上運行的 cron 事件列表。

cron 事件列表

在此部分,您可以運行、編輯和刪除您的 cron 事件。 當您將鼠標懸停在任何 cron 事件上時,您將看到此選項。

您還將找到有關這些 cron 作業的有用信息,并快速確定哪個 cron 作業用於什麼目的等等。 在第一列中,Hook 顯示了 WordPress 核心或任何插件使用的鉤子的名稱。 例如,前綴“ wp ”只是表明它是WordPress核心的一個cron。 您還會注意到,沒有刪除這些 cron 事件的選項,但是您可以使用立即編輯運行選項。 同樣,對於您的插件,您會注意到使用了其他前綴(例如,對於 WooCommerce,“wc”或“woocommerce”)。

第二列參數只包含傳遞給鉤子函數的參數。

第三列顯示此 cron 作業下次運行的時間。

第四列Action顯示此 cron 將執行的操作(cron 作業的“功能”)。
最後一列定義了 cron 作業的重複時間。 這基本上是計劃任務的時間間隔。

第 3 步:編輯 Cron 事件

現在讓我們編輯一個 WP cron 作業來測試這個插件。

轉到掛鉤的名稱並單擊編輯。 將彈出一個新部分“編輯 Cron 事件”,您將在其中看到不同的字段。 就我而言,我編輯了“wp_privacy_delete_old_export_files”鉤子。 接下來,我將把這個 cron 作業的重複週期改為“每十五分鐘”。

編輯 cron 事件

步驟 4:添加自定義時間間隔

接下來,我將向您展示如何為您的 cron 事件添加自定義時間間隔。 為此,單擊“ Cron Schedule ”選項卡,將出現一個新屏幕,您將在其中看到計劃時間間隔的詳細信息。 接下來,向下滾動到底部,您將看到“添加Cron計劃”。 填寫字段並單擊添加Cron計劃

添加 cron 計劃

請注意,間隔的輸入以秒為單位。 我將使用 600 秒將間隔設置為 10 分鐘。

現在您可以編輯您的 cron 事件並將其替換為您自己的自定義時間間隔。

編輯 cron 事件

第 5 步:添加新的 Cron 事件

現在您知道如何為您的 cron 事件管理簡單的任務,但是如果您想為您的 WordPress 應用程序添加您自己的 cron 作業怎麼辦。 別擔心,它是如此簡單,您所需要做的就是按照以下說明進行操作。

首先,單擊添加 Cron 事件,您將進入添加 cron 部分。 然後,根據需要給出一個鉤子名稱(應該遵循正常的 PHP 命名約定並且沒有空格)。

然後,添加參數(它是可選的),在我的情況下它是空白的。 接下來,選擇任何選項並在Next Run字段中輸入時間。 最後,為您的新 cron 選擇一個重複時間(計劃時間),然後單擊Add Event

添加 cron 事件

如果您對此有任何疑問,則可以從您的 cron 事件中檢查任何正在運行的 cron 作業的設置。

添加新的 cron 作業後,轉到cron事件選項卡並檢查您新創建的 cron。 您會注意到,在操作列中,它會向您顯示None (錯誤)。 這是因為您尚未為此 cron 作業定義任何操作。 因此你需要在主題的functions.php文件中寫幾行代碼並添加一個動作。

沒有錯誤

注意:在繼續之前,強烈建議備份 WordPress 站點。

讓我們打開文件並在<?php之後添加以下代碼行:

 add_action('cloudways_new_cron', 'cw_function');
函數 cw_function() {
wp_mail( '[email protected]', 'Cloudways Cron', 'Cloudways - 託管雲主機!');
}

不要忘記用您自己的電子郵件地址替換我的電子郵件地址。

函數 php 電子郵件地址
您可以在上圖中看到,我直接使用 WordPress 儀表闆對其進行了編輯。 如果你願意,你可以通過像 FileZilla 這樣的 FTP 客戶端來編輯這個文件。

接下來,讓我們檢查電子郵件收件箱,看看我們是否收到了郵件。

電子郵件

多田! 大功告成,我們成功添加了一個新的 cron 事件。

如何使用 WP CLI 管理 WordPress Cron 作業

您還可以從 WordPress CLI 查看和管理所有 WordPress cron 作業。 在 Cloudways,您需要啟動終端並使用服務器憑據登錄。

接下來,放置 WordPress 應用程序的路徑。 就我而言,網址是:

 光盤應用程序/urrghmpqks/public_html/ 

cron 作業 WP CLI

接下來,您需要運行此命令:

 wp cron 事件列表

cron 作業 WP CLI

您可以看到掛鉤名稱、下一次運行時間、下一次運行相關和重複次數(預定時間)。

如何設置真正的 Cron 作業

現在,您知道 WordPress cron 工作是什麼以及它是如何工作的。 如果由於任何原因(例如低流量、需要在特定時間運行的重要任務、過多的 DDoS 攻擊或高頁面加載時間),您想用真正的 cron 作業替換它,該怎麼辦?

讓我們開始吧!

第 1 步:打開並編輯 wp-config.php 文件

首先,您需要使用 FTP 客戶端(如 FileZilla)或 SSH 客戶端(如 puTTY)打開 wp-config 文件。 之後,編輯文件並將以下代碼行放在它說 /* 就這樣,停止編輯! 快樂的博客。 */

代碼:

 定義('DISABLE_WP_CRON',真); 

編輯 wp 配置文件

此代碼禁用您的 WordPress 站點上正在運行的 cron 事件,現在您可以創建一個真正的 cron 作業。

通過 Cloudways 平台管理真正的 Cron 作業

從 3 天免費試用開始

現在試試

步驟 2:向服務器添加新的 Cron 作業

接下來,登錄您的 Cloudways 平台,然後轉到應用程序管理面板> Cron 作業管理>高級部分。

添加新的 cron 作業

然後添加以下命令並單擊保存更改:
*/5 * * * * wget -q -O - 'https://wordpress-413270-1299955.cloudwaysapps.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

高級 cron 選項卡

在上面的命令中,首先,我為 cron 作業定義了五分鐘的間隔。 您可以使用此站點來檢查時間表表達式。 就我而言, */5 * * * *是區間表達式。

恭喜! 您已成功添加了一個真正的 cron 作業。

最後的話!

我希望本文能幫助您了解 WordPress cron 工作的工作原理。 我已經討論了兩種管理 WordPress cron 作業的方法; 一個通過插件,另一個通過 WP-CLI。 我還討論瞭如何在實時服務器上設置真正的 cron 作業。

如果您有任何疑問,請在下面的評論部分告訴我。