如果我使用字符串作为$ key我的代码可以工作,但如果我使用$ hasorhasnotentered它返回"数组"。如何为$ key使用变量?
<?php
$user_id = $current_user->ID;
$key = $hasorhasnotentered;
$single = true;
$user_last = get_user_meta( $user_id, $key, $single );
echo '<p>The '. $key . ' value for user id ' . $user_id . ' is: ' . $user_last . '</p>';
?>
变量由以下表单的用户交互定义为表单代码
<form method="post" id="adduser" action="/my-likes-list/">
<input type="text" name="<?php echo $hasorhasnotentered;?>" id="<?php echo $hasorhasnotentered;?>" value="<?php echo $yesentered; ?>"/>
<p class="form-submit">
<input name="updateuser" type="submit" id="updateuser" class="submit button" value="update-user" onclick='enterdnew()'/>
<?php wp_nonce_field( 'update-user' ) ?>
<input name="action" type="hidden" id="action" value="Update" />
</p>
</form>
答案 0 :(得分:0)
您可以像使用一样使用变量。只是变量需要包含一个字符串。显然,您的$hasorhasnotentered
包含。这就解释了为什么它会返回一个数组,因为如果$ key保留为空,get_user_meta
将返回数组中的所有元数据。请参阅文档:https://codex.wordpress.org/Function_Reference/get_user_meta
$key
(string) (optional) The meta_key in the wp_usermeta table for the meta_value to be returned. If left empty, will return all user_meta fields for the given user.
Default: (empty string)
编辑: 在上面的表单代码中,我相信你想要:
<input type="text" name="hasorhasnotentered" id="hasorhasnotentered" value="<?php echo $hasorhasnotentered; ?>"/>
然后,在加载时,元素的值将被设置为$ hasorhasnotentered的值。并且用户将$ hasorhasnotentered设置为他们在元素中键入的任何文本。
然后,在提交时,$ hasorhasnotentered将是输入字段的文本。
我必须承认,我可能不理解您的代码的意图。
答案 1 :(得分:0)
您的代码看起来不错,但我希望您的$ hasorhasnotentered变量不是未定义的。如果它的值来自用户输入,请在使用前检查定义性!