如果没有登录到wordpress,则无法访问函数username_exists()

时间:2014-08-02 06:21:34

标签: php wordpress

我在functions.php中使用以下函数来检查数据库中是否存在用户名

function check_username() {
   $username = $_POST['user'];
   if ( username_exists( $username ) ) {
       $return['user_exists'] = true; 
   }
   else {
       $return['user_exists'] = false;
   }
   echo json_encode($return);
   die();
}
add_action('wp_ajax_check_username', 'check_username');

问题是username_exists()函数似乎只有在用户已登录并检查用户名时才有效。我试图在没有登录的情况下检查现有用户名,它只为我返回undefined

我不知道为什么会发生这种情况,也无法找到有关此问题的任何文档。

我的问题是,如何让用户无需登录即可检查用户是否存在?

由于

1 个答案:

答案 0 :(得分:2)

试试这个

  function check_username() {
        $username = $_POST['user'];
         if ( username_exists( $username ) ) {
             $return['user_exists'] = true; 
         }
         else {
             $return['user_exists'] = false;
         }
         echo json_encode($return);
         die();
      }
      add_action('wp_ajax_check_username', 'check_username');
      add_action( 'wp_ajax_nopriv_check_username', 'check_username' );

wp_ajax_check_username - 匿名/未登录的访问者

wp_ajax_nopriv_check_username - 登录用户