如何在(后端)窗口小部件窗体中获取已检查的类别

时间:2014-03-06 14:30:05

标签: php wordpress checkbox widget

我正在构建一个wordpress小部件,允许用户从类别列表中进行选择,在侧边栏中显示哪些类别(以及它的描述和自定义图标)。 我只收到检查过的类别时遇到了麻烦。

这是我的代码:

    $categories = get_categories();


    $defaults = array( 'title' => 'Categories Title','categories' => $categories);

    $instance = wp_parse_args( (array) $instance, $defaults );

    if (isset($instance['title'])) {
        $title = $instance['title'];
    }else {
        $title = __('New title', 'text_domain');
    }

    if (isset($instance['categories'])){
        $categories_list = $instance[ 'categories' ];
    }else {
        $categories_list = __( 'put here array', 'text_domain');
    }

    ?>
    <p>
        <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:' ); ?></label> 
        <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" 
                name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" 
                value="<?php echo esc_attr( $title ); ?>"/>
    </p>

    <p>
        <label for="<?php echo $this->get_field_id( 'categories' ); ?>"><?php _e( 'Categories List:' ); ?></label> 
        <?php foreach($categories as $cat) : ?>
            <p>
                <input  type="checkbox" 
                        id="<?php echo $this->get_field_id( 'categories' ); ?>" 
                        name="<?php echo $this->get_field_id( 'categories' ); ?>" 
                        value="<?php echo $cat->term_id; ?>" 
                />
                <label>
                    <?php echo $cat->name; ?>
                </label>
            </p>
        <?php endforeach; ?>
    </p>

    <?php 
}

0 个答案:

没有答案