欢迎来到好站网,本站为您免费提供源码、模板、软件、素材等资源下载!
好站网 技术教程 WordPress制作前端会员用户中心实用功能代码集合

WordPress制作前端会员用户中心实用功能代码集合

2022-06-02|编辑:好站网
191

本站整合了几个实用的前端会员中心功能,现在将代码整理分享给大家。代码的作者均为 @露兜博客。
让 WordPress 支持中文用户名
让 WordPress 支持中文用户名 既然是面向国内用户,支持中文用户名就太有必要了。

//让wordpress支持中文用户名
function ludou_sanitize_user ($username, $raw_username, $strict) {
  $username = wp_strip_all_tags( $raw_username );
  $username = remove_accents( $username );
  // Kill octets
  $username = preg_replace( '|%([a-fA-F0-9][a-fA-F0-9])|', '', $username );
  $username = preg_replace( '/&.+?;/', '', $username ); // Kill entities
  // 网上很多教程都是直接将$strict赋值false,
  // 这样会绕过字符串检查,留下隐患
  if ($strict) {
    $username = preg_replace ('|[^a-z\p{Han}0-9 _.\-@]|iu', '', $username);
  }
  $username = trim( $username );
  // Consolidate contiguous whitespace
  $username = preg_replace( '|\s+|', ' ', $username );
  return $username;
}
add_filter ('sanitize_user', 'ludou_sanitize_user', 10, 3);

非管理员不允许进入后台
既然有了前端会员中心,用户就没必要进入后台了,禁止非管理员进入可提高安全性。

//非管理员不允许进入后台
if ( is_admin() && ( !defined( 'DOING_AJAX' ) || !DOING_AJAX ) ) {
  $current_user = wp_get_current_user();
  if($current_user->roles[0] == get_option('default_role')) {
    wp_safe_redirect( home_url() );
    exit();
  }
}

让 WordPress 支持Email登录
Email登录大家并陌生,忘记用户名用Email登录岂不是更友好。

// 修改WordPress用户名过滤机制,通过Email获取用户名
function ludou_allow_email_login($username, $raw_username, $strict) {
  if (filter_var($raw_username, FILTER_VALIDATE_EMAIL)) {
    $user_data = get_user_by('email', $raw_username);
    if (empty($user_data))
      wp_die(__('<strong>ERROR</strong>: There is no user registered with that email address.'), '用户名不正确');
    else
      return $user_data-&gt;user_login;
  }
  else {
    return $username;
  }
}
if (strpos($_SERVER['REQUEST_URI'], '?action=register') === FALSE &amp;&amp; strpos($_SERVER['REQUEST_URI'], '?action=lostpassword') === FALSE &amp;&amp; strpos($_SERVER['REQUEST_URI'], '?action=rp') === FALSE ) {
  add_filter('sanitize_user', 'ludou_allow_email_login', 10, 3);
}

让用户默认不显示工具栏
WordPress默认会对新注册的用户开启工具栏(就是顶部固定的那陀黑乎乎的玩意),说实话它常与我们的前端样式格格不入,简直是丑爆了,对用户而言又没有什么实际用处,还是关了它好。

//让用户默认不显示工具栏
add_action("user_register", "set_user_admin_bar_false_by_default", 10, 1);
function set_user_admin_bar_false_by_default($user_id) {
    update_user_meta( $user_id, 'show_admin_bar_front', 'false' );
    update_user_meta( $user_id, 'show_admin_bar_admin', 'false' );
}

希望对大家有所帮助!

相关推荐
  • wordpress指定分类从第二篇文章开始调用代码
    我们在做wordpress主题 的时候经常会遇到这种情况,就是在做新闻头条的时候,由于第一篇文章已经作为头条显示出来了,那么下面如果再想调用这个目录里的文章就需要从第二篇文章开始调用,否则就会出现重复调用,那……
    技术教程 2022-09-17 170
  • 更改 WordPress 自定义文章类型存档页面的文章数
    通常,每页显示的文章数量默认为仪表板设置 > 阅读 > 博客页面至多显示 的值,您可能希望常规的文章采用这个数量,但是自定义文章类型不要采用。要更改自定义文章类型的存档页面中显示的文章数量,您可以使用带有……
    技术教程 2022-07-19 190
  • 有网友留言,想实现WordPress在前台注册的功能,联想之前写的教程:WordPress添加投稿功能,实现方法很类似,趁着今天休息,琢磨了一下,很快实现了WordPress前台的注册的功能。下面分享具体方法: 一、添加注册表……
    技术教程 2022-06-02 184
  • WordPress添加用户自定义字段(user_meta)到用户资料
    在我们进行WordPress前端用户中心功能开发的时候,经常会需要一些自定义字段来实现我们的需求,很多的插件可以实现我们的需求,今天分享的是免插件实现添加用户自定义字段(user_meta)到用户资料的教程。 今天我们……
    技术教程 2022-06-02 158
  • 一、添加登录表单 1、首先在当前主题的目录下新建一个php文件,命名为page-login.php,然后将page.php中的所有代码复制到page-login.php中; 2、删除page-login.php开头的所有注释,即 /* 与 */ ,以及它们之间的……
    技术教程 2022-06-02 169