如何將 Slack 提醒通知與 WordPress 集成

已發表: 2020-02-07

在現代生活中,有這麼多不同的需求在爭奪你的注意力,很容易忘記你應該執行的許多重要任務,並希望被提醒。 畢竟,一張滿是潦草的便利貼的桌子只能確保提醒你一些重要的事情,所以你很可能最近忘記了一些事情。 但是,有一種方法可以讓 Slack 在您需要時提醒您所有這些任務,好消息是我們將向您展示如何設置它!

您可能需要 Slack 提醒您很多事情。 提醒的對象、內容、時間和原因非常重要,可以涵蓋任何內容,包括設置與銀行經理會面的提醒、按時提交差旅費用或提醒即將到來的重要項目的截止日期。 我們將在本博客中使用的提醒示例是設置“博客文章 Slack 提醒”消息。 儘管您可以隨意將其替換為更適合您和您的情況的任何提醒。

鑑於 SEO 的重要性,大多數運營網站的人都知道定期更新和發布新博客至關重要。 雖然在 SEO 上取得成功所需的任務是一個嚴密保密的秘密,但我們確實知道定期發布新博客是提升 Google SEO 排名的好方法。 因此,如果您在過去 7 天內未在博客上發布新文章,網站所有者可能會對 Slack 應用程序感興趣,該應用程序將向您的 Slack 頻道發送通知。 這些提醒有望幫助您更好地管理您的文章和博客,也有助於提醒您按時發布它們。

在本文中,我們將向您展示如何使用您自己創建的應用程序將 Slack 通知與您的 WordPress 博客集成。

入門 - 創建 Slack 應用程序

要開始使用,您首先需要在您的 Slack 帳戶中創建一個應用程序。 為此,請轉到Slack API頁面並點擊“創建新應用程序”按鈕。

這將創建一個彈出窗口。 填寫您要求的詳細信息,您將被重定向到“設置頁面”。 在此設置頁面中,單擊左側部分的“傳入 Webhook”。 將此選項切換為“開”。

向下滾動到底部,然後單擊“請求添加新 Webhook”按鈕。 如果您不是管理員,則需要獲得管理員批准才能訪問此選項。

應用程序獲得批准後,單擊左側菜單中的“安裝應用程序”。 然後按“將應用程序安裝到工作區”按鈕。

在下一頁上選擇所需的頻道,然後單擊“允許”按鈕。 然後,您將被重定向到您將獲得 Webhook URL 的頁面。 複製此 URL,因為您很快就會需要它。

從 WordPress 在 Slack 頻道上發送通知

您現在已準備好繼續,因為您擁有 Webhook URL 並且還配置了 Slack 通道,通知將發送到該通道。 接下來,您需要編寫一個代碼,將 POST 請求連同消息一起發送到 webhook URL。 此 webhook URL 將自動將收到的消息發佈到所選的 Slack 頻道。

所以,讓我們做一些編碼。

計算最後一篇文章發布的天數

向 Slack 頻道發送通知時,您首先需要計算上一篇文章發布後的天數。 以下代碼將進入您的活動主題: functions.php文件。

 <?php function get_daycount_of_last_blog_posted(){   $args=array(        'post_type' => 'post',        'post_status' => 'publish',        'posts_per_page' => 1,    );    $datediff = 0;    $blog_posts = new WP_Query( $args );    if ( $blog_posts->have_posts() ) :  while ( $blog_posts->have_posts() ) : $blog_posts->the_post();   $datediff = time() - strtotime(get_the_date());      endwhile;        wp_reset_postdata();    endif;    if ($datediff) return round($datediff / (60 * 60 * 24));   return $datediff; }

此代碼和方法將從 WordPress 數據庫中獲取最後添加的帖子,併計算從您請求它到發布最後一篇文章之間的天數。

向 Webhook 發送 POST 請求

WordPress 提供了一個函數wp_remote_post()來執行 HTTP 請求並接收響應。 使用此方法,我們將自定義消息發送到 webhook。

在您的 WordPress 項目的根目錄中創建一個文件notification.php並將以下代碼添加到其中。

 <?php require_once('wp-load.php'); $slack_webhook_url = 'YOUR_WEBHOOK_URL'; $last_blog_day_count = get_daycount_of_last_blog_posted(); if($last_blog_day_count > 5) { $msg = 'Hey team, our app found that we have not added new article on UpdraftPlus for more than 5 days. Please look into it.';    // Prepare the data / payload to be posted to Slack  $data = array(        'payload'   => json_encode( array(                "text" =>  $msg,            )        )    );    // Post our data via the slack webhook endpoint using wp_remote_post  wp_remote_post( $slack_webhook_url, array(            'method' => 'POST',            'body' => $data,        )    ); }

如果超過 5 天沒有在您的博客上添加新文章,此代碼將向 Webhook URL 發布一條消息。 結果,您會在所選的 Slack 頻道上收到通知。

在你的服務器上設置 cron

我們的目標是創建一個自動化系統,該系統將在特定的 Slack 頻道上通知團隊這項任務。 因此,我們在 WordPress 項目的根文件夾中創建了一個 PHP 文件。 通過在服務器上使用此文件設置 cron,您可以將 Slack 應用程序設置為自動運行。

根據您的託管服務提供商,在服務器上設置 cron 可能會有所不同。 為了本教程的目的,我們將舉例說明如何在 Media Temple 虛擬主機的 CPanel 上設置 cron。

登錄到您的 CPanel。 在“高級”部分下選擇“Cron Jobs”。

在下一頁上,從“常用設置”下拉菜單中選擇“每天一次(0 0 * * *)”選項。 這意味著 cron 將每天執行一次腳本。

最後,通過調整您的notification.php文件路徑,在 Command 字段中添加以下語句。

 <pre>/usr/local/bin/php /home/xyz/public_html/notification.php</pre>

而已!

通過遵循本教程,您現在可以為您和您的團隊創建自己的 Slack 應用程序。 這肯定會幫助每個人及時了解預定的博客,並確保您不會錯過任何重要的日期。

如何將 Slack 提醒通知與 WordPress 集成的帖子首先出現在 UpdraftPlus 上。 UpdraftPlus – WordPress 的備份、恢復和遷移插件。