Wordpress函数创建窗体返回False

问题描述:

我在Wordpress中有一个表单生成的PHP文件,它调用一个自定义函数来获取用户数据来填充窗体。如果没有找到用户,该功能将正常运行(如果应答,则返回“无效用户名”),但如果用户有效,则不会逐步执行该功能。这是它的要点:Wordpress函数创建窗体返回False

function print_report($username, $var2, $var3) 
{ 
    $user = get_user_by('login', $username); 
    if($user) { 
    //get all the information and create the form 
    } 
    else echo "invalid username"; 
    return false; 
} 

看来,当一个有效的用户被发现,它不通过该功能,但跳到最后。换句话说,如果用户有效,它将返回“false”。

我希望我解释得很好。如果您需要其他信息,请告诉我。

编辑

我已经做了var_dump()的建议。它找到用户,但仍然返回false。这是我的测试用户的结果:

string 'jimv3000' (length=8) 
object(WP_User)[1610] 
    public 'data' => 
    object(stdClass)[1634] 
     public 'ID' => string '1101' (length=4) 
     public 'user_login' => string 'jimv3000' (length=8) 
     public 'user_pass' => string '*THERE IS A PASSWORD HERE*' (length=34) 
     public 'user_nicename' => string 'jimv3000' (length=8) 
     public 'user_email' => string '*THERE IS AN EMAIL HERE*' (length=18) 
     public 'user_url' => string '' (length=0) 
     public 'user_registered' => string '2016-05-16 20:37:30' (length=19) 
     public 'user_activation_key' => string '' (length=0) 
     public 'user_status' => string '0' (length=1) 
     public 'display_name' => string 'jimv3000' (length=8) 
    public 'ID' => int 1101 
    public 'caps' => 
    array (size=1) 
     'subscriber' => boolean true 
    public 'cap_key' => string 'wp_capabilities' (length=15) 
    public 'roles' => 
    array (size=1) 
     0 => string 'subscriber' (length=10) 
    public 'allcaps' => 
    array (size=3) 
     'read' => boolean true 
     'level_0' => boolean true 
     'subscriber' => boolean true 
    public 'filter' => null 
false 

一如既往,非常感谢您的帮助。

+0

你有'$ username'和'$ user'什么?你可以做一个'var_dump($ username,$ user)'并显示你的结果吗? –

+0

除非你告诉代码在if语句中“返回”某些东西,否则你总是会返回false,因为return语句落在你的if语句之外。 –

+0

它确实找到用户和数据。返回时间太长,无法在此处发布,但它会查找用户数据,并在最后返回“false”。 –

试试这个

function print_report($username, $var2, $var3) 
{ 
$user = get_user_by('login', $username); 
if($user) { 
//get all the information and create the form 
} 
else { echo "invalid username"; 
return false; } 
} 

PHP conditionals, brackets needed?

您对您的else语句,这意味着当你的功能,当用户存在进入if语句,它不管你告诉它做的事情,然后掉下来没有括号底部并执行你的返回虚假陈述。

如果您希望只在未找到用户时返回false,则需要在else语句中放置大括号。

无论如何让您的代码更清晰易读,您可能希望添加它们。它可以更容易地找到这种问题。