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
一如既往,非常感谢您的帮助。
答
试试这个
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语句中放置大括号。
无论如何让您的代码更清晰易读,您可能希望添加它们。它可以更容易地找到这种问题。
你有'$ username'和'$ user'什么?你可以做一个'var_dump($ username,$ user)'并显示你的结果吗? –
除非你告诉代码在if语句中“返回”某些东西,否则你总是会返回false,因为return语句落在你的if语句之外。 –
它确实找到用户和数据。返回时间太长,无法在此处发布,但它会查找用户数据,并在最后返回“false”。 –