如何使用变量作为关键

时间:2017-03-27 17:57:15

标签: string wordpress variables metadata

如果我使用字符串作为$ 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>

2 个答案:

答案 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变量不是未定义的。如果它的值来自用户输入,请在使用前检查定义性!