如何将 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 的备份、恢复和迁移插件。