在我的生命中,我无法获得多个复选框!
其他一切都有效,包括一个复选框,但我不知道如何制作多个复选框。
我想要的是以下内容:
我有一个名为Team的自定义帖子类型,其中包含所有团队成员。我想在Team中创建帖子的小部件。我希望复选框输出Team中的所有帖子,最终用户可以在其中选择要显示的人员。
我尝试在数组中进行,但这没有用。
我的单个复选框是这样的:
public function widget( $args, $instance ) {
$teammember = $instance['teammember'];
}
public function update( $new_instance, $old_instance ) {
$instance['teammember'] = $new_instance['teammember'];
return $instance;
}
public function form( $instance ) {
$teammember = $instance['teammember'];
?>
<p>
<input id="<?php echo $this->get_field_id('teammember'); ?>" name="<?php echo $this->get_field_name('teammember'); ?>" type="checkbox" value="Name 1" <?php checked( '1', $teammember ); ?>/> Name 1
<input id="<?php echo $this->get_field_id('teammember'); ?>" name="<?php echo $this->get_field_name('teammember'); ?>" type="checkbox" value="Name 2" <?php checked( '1', $teammember ); ?>/> Name 2
</p>
<?php } ?>
所以,让我们说我有10个团队成员,我希望他们都在小部件中有一个复选框,最终用户可以选择要显示的队员。
我该怎么做?
答案 0 :(得分:4)
在您的示例中,由于ID重复,输入将受到W3C违规。名称将互相覆盖。
$this->get_field_name('teammember');
将返回相同的结果并相互覆盖。
您需要以数组形式实现此目标。
<?php
public function form($instance) {
$teammember = $instance['teammember'];
?>
<p>
<?php
foreach($teammember as $id => $name) {
?>
<input id="<?php echo $this->get_field_id('teammember') . $id; ?>" name="<?php echo $this->get_field_name('teammember'); ?>[]" type="checkbox" value="<?php echo $name; ?>" <?php checked('1', $name); ?> />
<?php
}
?>
</p>
<?php
}