每个用户的输出复选框并保存在插件选项中

时间:2016-10-31 作者:Erik van der Bas

我正在寻找一种在插件的settings\\u字段中将复选框列表保存为数组的方法。我目前有:

<?php
   $WPusers = get_users( \'orderby=nicename&role=administrator\' );
     foreach ( $WPusers as $user ) { ?>
       <input type="checkbox" name="<?php echo $this->plugin_name; ?>[users]" id="<?php echo $this->plugin_name; ?>-users" value="<?php echo $user->ID; ?>" <?php checked( $user->ID, $options[\'users\'], false ); ?> />
       <label for="<?php echo $this->plugin_name; ?>[users<?php echo $user->ID; ?>]"><?php echo $user->display_name; ?></label>
     <?php } ?>
唯一的问题是,它只保存一个选项,而不是所有复选框的数组。我很想看到一种将所有选中的用户存储在插件的一个选项中的方法。

因为我对WP开发和PHP一般来说都是新手,所以这对我来说是全新的。

1 个回复
最合适的回答,由SO网友:CodeMascot 整理而成

改变现状[user][users][]. 希望这能解决问题。现在,您将获得以下关联数组中的所有值[users][\'your-checkbox-data-array\'] 所以你的代码是-

<?php
   $WPusers = get_users( \'orderby=nicename&role=administrator\' );
     foreach ( $WPusers as $user ) { ?>
       <input type="checkbox" name="<?php echo $this->plugin_name; ?>[users][]" id="<?php echo $this->plugin_name; ?>-users" value="<?php echo $user->ID; ?>" <?php checked( $user->ID, $options[\'users\'], false ); ?> />
       <label for="<?php echo $this->plugin_name; ?>[users<?php echo $user->ID; ?>]"><?php echo $user->display_name; ?></label>
     <?php } ?>

相关推荐

Save Plugin Options as Array

我正在尝试创建一个简单的选项页面。这些选项由每个用户角色的文本字段组成。但我不想每次添加新用户角色时都编辑代码。因此,我试图;对于每个用户角色并从中生成文本字段。但该值不会保存在选项中。我想我需要在保存之前将值保存在数组中。像这样:add_settings_field( \'weborder_leveranstext\', __( \'Header\', \'weborder\' ), \'weborder_leveranstext_render\', \'plugi