从评论通知中删除敏感信息-NOTIFY_POST_AUTHER

时间:2014-02-25 作者:JorgeLuisBorges

基本上,我需要删除或评论我们在pluggable中的第1114-1116行。php,并编辑第1113行

这些是台词

$notify_message .= sprintf( __(\'Author : %1$s (IP: %2$s , %3$s)\'), $comment->comment_author, $comment->comment_author_IP, $comment_author_domain ) . "\\r\\n";
$notify_message .= sprintf( __(\'E-mail : %s\'), $comment->comment_author_email ) . "\\r\\n";
$notify_message .= sprintf( __(\'URL    : %s\'), $comment->comment_author_url ) . "\\r\\n";
$notify_message .= sprintf( __(\'URL    : %s\'), $comment->comment_author_url ) . "\\r\\n";
它们都是功能的一部分-wp\\u notify\\u posauthor

我可以通过创建一个插件(这就是我所做的)来替换整个东西,但是有没有办法只更改那些受影响的行,而不替换整个函数?

谢谢

1 个回复
SO网友:s_ha_dum

There is a hook 这应该可以让您更改数据--comment_notification_text.

add_action(
  \'comment_notification_text\',
  function($notify_message,$comment_id) {
    var_dump($notify_message,$comment_id);
    die;
  },
  10,2
);
你可以分析一下$notify_message 串起并移除不需要的部分。

add_filter(
  \'comment_notification_text\',
  function($notify_message) {
    $notify_message = explode("\\n",$notify_message);
    foreach ($notify_message as $k => $line) {
      $header = trim(substr($line,0,strpos($line,\':\')));
      switch ($header) {
        case \'E-mail\':
        case \'URL\' :
        case \'Whois\':
          unset($notify_message[$k]);
        break;
        case \'Author\' :
          $pat = \'([^(]+)\\(.*$\';
          $notify_message[$k] = trim(preg_replace(\'|\'.$pat.\'|\',\'$1\',$line));
        break;
      }
    }
    $notify_message = implode("\\n",$notify_message);
    return $notify_message;
  }
);
我想这就是你想要的。

结束

相关推荐

如何在Pluggable.php中添加自定义函数

我正在开发一个WP插件,我想向pluggable添加一个自定义函数。php(位于/wp includes)。我正在从admin调用该函数。php(位于/wp admin)考虑一下功能auth_redirect 这是从admin调用的。php。auth_redirect 是在pluggable中定义的函数。php检查登录的用户,否则它会将他们重定向到登录页面。同样,我有自己的自定义函数。那么,是否有任何特定的钩子或过滤器,我必须使用它们来将我的函数附加到可插拔的。php。目前,我正在使用fwrite() 将