WordPress几个好用的代码块钩子

作者: shaneZhang 分类: 互联网技术 发布时间: 2018-12-15 15:31
//为正文所有链接添加target="_blank"属性
function auto_blank($text) {
    $return = str_replace('<a', '<a target="_blank"', $text);
    return $return;
}
add_filter('the_content', 'auto_blank');
   add_action('phpmailer_init', 'mail_smtp');
    function mail_smtp( $phpmailer ) {
        $phpmailer->FromName = ''; //发件人名称
        $phpmailer->Host = ''; //修改为你使用的邮箱SMTP服务器
        $phpmailer->Port = 465; //SMTP端口
        $phpmailer->Username = 'xxxxx@gmail.com'; //邮箱账户
        $phpmailer->Password = 'xxxxxxxxxx'; //邮箱密码
        $phpmailer->From = 'xxxxx@gmail.com'; //邮箱账户
        $phpmailer->SMTPAuth = true;
        $phpmailer->SMTPSecure = 'ssl'; //tls or ssl (port=25时->留空,465时->ssl)
        $phpmailer->SMTPOptions = array(
            'ssl' => array(
                'verify_peer' => false,
                'verify_peer_name' => false,
                'allow_self_signed' => true
            )
        );
        $phpmailer->IsSMTP();
    }
// 博客后台登录失败时发送邮件通知管理员
   function wp_login_failed_notify()
   {
       date_default_timezone_set('PRC');
       $admin_email = get_bloginfo('admin_email');
       $to = $admin_email;
       $subject = '【登录失败】有人使用了错误的用户名或密码登录『' . get_bloginfo('name') . '』';
       $message = '<span style="color:red; font-weight: bold;">『' . get_bloginfo('name') . '』有一条登录失败的记录产生,若登录操作不是您产生的,请及时注意网站安全!</span><br /><br />';
       $message .= '登录名:' . $_POST['log'];
       $message .= '<br />尝试的密码:' . $_POST['pwd'];
       $message .= '<br />登录的时间:' . date("Y-m-d H:i:s");
       $message .= '<br />登录的 IP:' . $_SERVER['REMOTE_ADDR'];
       $message .= '<br /><br />';
       $message .= '您可以: <a href="' . get_bloginfo('url') . '" target="_target">进入' . get_bloginfo('name') . '»</a>';
       wp_mail( $to, $subject, $message, "Content-Type: text/html; charset=UTF-8" );
   }
   add_action('wp_login_failed', 'wp_login_failed_notify');

如果觉得我的文章对您有用,请随意打赏。如果有其他问题请联系博主QQ(909491009)或者下方留言!

一条评论
  • shaneZhang

    2018年12月15日 下午7:58

    php7.0以上可能出现phpmailler由于ssl证书的问题导致发不出去邮件,添加上以下代码就可以了

    $phpmailer->SMTPOptions = array(
    'ssl' => array(
    'verify_peer' => false,
    'verify_peer_name' => false,
    'allow_self_signed' => true
    )
    );

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注