函数username_exists()在未登录wordpress的情况下无法访问


Function username_exists() can't be accessed without logging in to wordpress

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

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为我。

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

我的问题是,我如何使用户能够检查用户是否存在而无需登录?

谢谢

try this

  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-已登录用户