在wordpress中实现新留言评论通知

有好一阵子没有搭理博客了,当一打开博客引入眼帘的是满屏的广告评论,也还有很多网友的热心评论,无一例外的是都错过了,广告评论没有及时删除,网友的评论也没有及时的回复,导致这个问题的原因就是当网站有新留言或者评论时不能及时的通知到我,所以今天我们研究如何在wordpress中加入这么一个通知的功能,当站点有留言或者评论的时候能够及时的触达到站长,便于及时处理。

在研究wordpress的留言和评论之前,我们先想一下网站中实现通知一般有哪些方式?

1、短信

2、邮件

3、微信推送

对于个人站长来说,用短信来做通知未免有些奢侈,所以我们这里主要研究邮件触达和微信推送。

在wordpress中发送邮件很简单,调用wp_mail函数就可以很轻松的发送邮件。但是如果我们需要做微信推送就需要借助一个第三方平台了,这个平台就是大名鼎鼎的Server酱,英文名ServerChan,那么我们如何使用Server酱呢?其实很简单,步骤如下:

1、注册 GitHub 账号(如果已经有账号就跳过),注册地址: https://github.com/

2、打开 Server酱 官网,点击右上角的『登入』按钮并使用 GitHub 账号登入网站,然后点击『发送信息』进入页面就能获得一个 SCKEY,记录下这个SCKEY,后面发消息会用到。

3、点击『微信推送』,用微信扫码关注即可完成账号绑定。

4、发送微信推送很简单,只需要往 http://sc.ftqq.com/SCKEY.send 发GET请求,就可以在微信里收到消息啦。

PHP示例:

file_get_contents('https://sc.ftqq.com/SCKEY.send?text='.urlencode('主人网站有新留言啦~'));

访问之后我们之前关注的方糖公众号就会向我们推送一条消息,如下面这样:

上面聊完了通知,接下来我们聊聊wordpress中的留言和评论,wordpress主题本身自带了留言功能,如果你正在使用这种留言方式,可以使用下面的代码来实现通知:

//评论微信推送    
function sc_send($comment_id) {  
  $text = '主人网站有新留言啦~';  
  $comment = get_comment($comment_id);  
  $desp = $comment->comment_content;  
  $key = 'SCKEY';  
  $postdata = http_build_query(array(  
  'text' => $text,  
  'desp' => $desp  
  ));  
  $opts = array('http' => array(  
    'method' => 'POST',
    'header' => 'Content-type: application/x-www-form-urlencoded',
    'content' => $postdata
  ));  
$context = stream_context_create($opts);  
return $result = file_get_contents('http://sc.ftqq.com/'.$key.'.send', false, $context);    
}  
add_action('comment_post', 'sc_send', 19, 2);

wordpress自带的留言功能虽然也能使用,但是还是不太方便,随意很多站长选择使用第三方的评论工具,比如多说和畅言,多说已经成为历史,现在能用的也就是畅言了,使用这些第三方工具用户可以很轻松的使用微信、qq等各种社交账号登录留言板并作出评论。

这里介绍一下使用畅言如何在网站有新留言的时候发起通知,畅言后天本身是有留言邮件提醒功能的,但是我设置了从来也没收到过,所以只能自己来解决这个问题,利用的是畅言的评论回推功能,在畅言后台系统设置 -> 通用设置 -> 高级设置中我们可以找到这个选项。

评论将以POST方式调用我们设置的接口,参数名为data,值是一个字符串,但是这个值并不是一个合法的json字符串,所以我们需要对这个值先做一定的处理后在做json_decode,代码如下:

<?php
  $cy_data = htmlspecialchars_decode($_POST['data']);
  $cy_data = preg_replace('/\\\/','',$cy_data);
  $cy_data = preg_replace('/"{/','{',$cy_data);
  $cy_data = preg_replace('/}"/','}',$cy_data);
  $data = json_decode($cy_data, true);

  $subject = '您的网站' . get_bloginfo("name") . '有新评论留言';
  $message =  '文章:' . $data['title'] . '<br />链接:<a href="' . $data['url'] . '">' . $data['url'] . '</a><br />IP:' . $data['comments'][0]['ip'] . '<br />留言内容:<br />' . $data['comments'][0]['content'] . '<br />请尽快处理。';

  // 微信推送消息
  file_get_contents('https://sc.ftqq.com/SCKEY.send?text='.urlencode($subject) . '&amp;desp=' . urlencode($message));
?>

后记:默默的删除了将近100条广告评论,加上了评论回推,妈妈咱也不担心我错过新留言或者评论了。

  • 支付宝二维码 支付宝
  • 微信二维码 微信
相关文章