WordPress在Widget中选择下拉列表

时间:2011-02-20 作者:Wordpressor

好的,我正在开发我自己的小部件,我有一个很大的问题。

我不知道如何获取并最终保存html选择值。

简单示例:

/* initialize TITLE */
function widget( $args, $instance ) {
        extract( $args );
        $title = apply_filters(\'widget_title\', $instance[\'title\'] );

(...)

/* update code for TITLE */
    function update( $new_instance, $old_instance ) {
        $instance = $old_instance;
        $instance[\'title\'] = strip_tags( $new_instance[\'title\'] );

(...)

/* creating TITLE field in widgets admin area */

 <p>
    <label for="<?php echo $this->get_field_id( \'title\' ); ?>"><?php _e(\'Title:\', \'hybrid\'); ?></label>
    <input id="<?php echo $this->get_field_id( \'title\' ); ?>" name="<?php echo $this->get_field_name( \'title\' ); ?>" value="<?php echo $instance[\'title\']; ?>" type="text" style="width:100%;" />
 </p>

(...)
好的。现在当我键入

<?php echo $instance[\'title\'] ?>
它将显示我的标题!

但我有以下清单:

<label for="<?php echo $this->get_field_id( \'example\' ); ?> "><?php _e(\'Map type:\', \'example\'); ?></label>
<select id="<?php echo $this->get_field_id( \'example\' ); ?>" name="<?php echo $this->get_field_id( \'example\' ); ?>">
     <option value="supervalue" selected="selected">Super Value</option>
</select>
以及

<?php echo $instance[\'example\'] ?>
什么都不给。我到处都在找,包括默认的小部件。php,但我一个字都不懂,因为所有默认插件都使用动态生成的选项列表。

我只使用了一个项目列表,但实际上它很长,我不知道如何保存所选元素,因为我不知道如何访问该元素的值。

有什么想法吗?我花了一整天的时间在这件事上,慢慢地完全发疯了。

[已编辑]

我没有向您展示更新函数,因为如上所述,我对每个函数使用相同的更新代码。

 function update( $new_instance, $old_instance ) {

    $instance = $old_instance;
    $instance[\'example\'] = strip_tags( $new_instance[\'example\'] );    

    return $instance;

}

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

请参阅上面的我的评论。。。您正在使用get_field_id() 在name属性上,它应该位于get_field_name().

get_field_id() 退货\'widget-\'.$this->id_base.\'-\'.$this->number.\'-\'.$field_name,
鉴于get_field_name() 退货\'widget-\'.$this->id_base.\'[\' . $this->number . \'][\' . $field_name.\']\'

SO网友:Ernest Marcinko

我最近写了一篇关于后端wordpress选择框的文章,它可能会帮助你们中的一些人:

http://wp-dreams.com/wordpress-widget-select-box/

结束

相关推荐

Why use widgets?

我对使用WordPress很陌生,我想知道使用小部件的好处是什么?看here 这听起来像是为那些不是程序员的人准备的,他们想在他们的网站上添加插件。对吗?或者小部件是否在某种程度上使站点更加健壮?