保存复选框组在窗口小部件Wordpress [英] Save Checkbox Group in Widgets Wordpress

查看:176
本文介绍了保存复选框组在窗口小部件Wordpress的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我无法使多个复选框工作,对我的生活有用。



其他一切正常,包括一个复选框,但我不知道如何做多个复选框。



我想要的是以下内容:



我有一个名为Team的自定义职位类型,它。我想做一个小部件的帖子在团队。我想要复选框输出Team中的所有帖子,其中最终用户可以选择显示谁。



我试着在数组中做,但是没有用。



我的单个复选框是这样的:

  public function widget($ args,$ instance){
$ teammember = $ instance ['teammember'] ;
}

公共函数更新($ 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 =checkboxvalue =Name 1<?php checked('1',$ teammember); > />名称1
< input id =<?php echo $ this-> get_field_id('teammember');?& name =<?php echo $ this-> get_field_name('teammember');?> type =checkboxvalue =Name 2<?php checked('1',$ teammember); > />名称2
< / p>
<?php}?>

所以让我们说我有10个团队成员,我希望他们都在小部件中有一个复选框

解决方案。



在您的示例中,由于ID重复,输入将有W3C违规。这些名称会相互覆盖。



$ this-> get_field_name('teammember');

 
$ b

<?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 =checkboxvalue =<?php echo $ name;?& <?php checked('1',$ name); > />
<?php
}
?>
< / p>
<?php
}


I cannot get multiple checkboxes to work, for the life of me!

Everything else works, including a single checkbox, but I don't know how to make multiple checkboxes.

What I want is the following:

I have a custom post type called Team, with all teammembers in it. I want to make a widget of the posts in Team. I want the checkbox to output all the posts in Team, where the enduser can select who to display.

I tried doing it in arrays, but that didn't work.

My single checkbox is like this:

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 } ?>

So let's say I have 10 teammember, I want them all to have a checkbox in the widget where the enduser can select what teammember(s) to show.

How do I do that?

解决方案

In your example the inputs will have a W3C violation because of duplicate IDs. The names will override each other.

The $this->get_field_name('teammember'); will return the same results and override each other.

You need to achieve this as an array.

<?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
}

这篇关于保存复选框组在窗口小部件Wordpress的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆