arrays - 使用 update_user_meta 保存数组

标签 arrays wordpress

我在用户信息中添加了更多字段,但现在我正在努力保存一组值。

我如何显示值:

<tr>
    <th><label for="days">days</label></th>
    <td>
        <input type="checkbox" name="days" value="<?php echo esc_attr( get_the_author_meta( 'monday', $user->ID ) ); ?>"> Monday<br>
        <input type="checkbox" name="days" value="<?php echo esc_attr( get_the_author_meta( 'tuesday', $user->ID ) ); ?>"> Tuesday<br>
        <input type="checkbox" name="days" value="<?php echo esc_attr( get_the_author_meta( 'wednesday', $user->ID ) ); ?>"> Wednesday<br>
        <input type="checkbox" name="days" value="<?php echo esc_attr( get_the_author_meta( 'thursday', $user->ID ) ); ?>"> Thursday<br>
        <input type="checkbox" name="days" value="<?php echo esc_attr( get_the_author_meta( 'friday', $user->ID ) ); ?>"> Friday<br>
    </td>
</tr>

我如何保存值:

update_user_meta($user_id, 'days', $_POST['monday, tuesday, wednesday, thursday, friday']); 

我知道我做错了,但我找不到正确的方法。我希望这里有人能帮助我。

最佳答案

更改 name="days"name="days[]"对于所有输入字段并使用

update_user_meta( $user_id, 'days', $_POST['days'] );

您将存储一个带有真/假值的数字数组,具体取决于这些字段是否被选中。

要设置复选框的预设值,您不能简单地将其值设置为您想要的值。这样做的正确属性是 checked="checked" .下面是一个完整的示例:

$values = array_combine( array( 'monday', 'tuesday', 'wednesday', 'thursday', 'friday' ), $_POST['days'] );
update_user_meta( $user_id, 'days', $values );

用于显示:

<?php 
$days = get_user_meta( $user_id, 'days', true );
foreach( $days as $day => $checked ):
?>
<input type="checkbox" name="days[]" <?php if( $checked ) echo 'checked="checked"'; ?>>
<?php endforeach; ?

但实际上,在您的情况下,使用数组作为字段名很笨拙。您可以将每个字段命名为“星期一”、“星期二”等,使用 $_POST['monday'] 检索值例如,然后存储 array( 'monday' => $_POST['monday'], ... ) .在数据库中有了这个,你就可以替换 name='days[]'name="<?php echo $day; ?>"'在 foreach 循环中。

注意我正在使用 get_user_meta而不是 get_author_meta - 它们不可互换!

Wordpress API 对您来说可能是一个小障碍,但我认为您真正需要学习的只是如何构建表单以及如何使用 PHP 处理它们。希望这是一个开始,但 Internet 上有更多资料。

关于arrays - 使用 update_user_meta 保存数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14872537/

相关文章:

c - 按两个不同的值排序

php - 在导航中使用语言按钮切换语言 Wordpress

php - 获取产品变体属性值术语 ID 和名称

ios - 一次使用 SQL for iOS 应用程序和网页

php - 将数组中的大量数据放入可用数据中?

arrays - 查找所有list1元素是否大于excel中的第二个列表

Javascript 将数组排序为树

php - Wordpress 为前端主题 functions.php 包含 jQuery UI Checkboxradio

php - Wordpress 主题更改了永久链接

java - 使用 java 对象创建一个简单的数学游戏