だから、私はうまくドロップダウンオプションを追加することに成功した、問題は私がすべてのオプションが削除されて保存をクリックしたときに、しかし、選択されたオプションは正常に実装されている。
関連するコードは次のとおりです。
function widget($args, $instance) {
extract( $args );
$pfxattribution = $instance['pfx-attribution'];
}
<p>
<label for="<?php echo $this->get_field_id('pfx-attribution'); ?>"><?php _e('Choose attribution:'); ?></label>
<select id="<?php echo $this->get_field_id('pfx-attribution'); ?>" name="<?php echo $this->get_field_name('pfx-attribution'); ?>" class="widefat" />
<option>Purefx</option>
<option>Foreign Exchange</option>
<option>Currency Exchange</option>
</select>
</p>
function update($new_instance, $old_instance) {
// Get the old values
$instance = $old_instance;
// Update with any new values (and sanitise input)
$instance['pfx-attribution'] = strip_tags( $new_instance['pfx-attribution'] );
return $instance;
}
任意の助けは大歓迎です
Danny、これは私が作ったプラグインからまっすぐ引き上げられました:
<?php function form($instance){
$instance = wp_parse_args( (array) $instance, $this->w_arg );
?>
<p>
<select id="<?php echo $this->get_field_id('order'); ?>" name="<?php echo $this->get_field_name('order'); ?>" type="text">
<option value="asc" <?php selected($instance['order'], 'asc'); ?>>ASC </option>
<option value="desc" <?php selected($instance['order'], 'desc');?>>DESC </option>
</select>
</p>
<?php
}
?>
コードの残りの部分を見ていないと、問題の根本を確認できませんが、フォームがフォーム関数内にラップされていない可能性があります。上記の方法でうまくいかない場合は、おそらくあなたのWidget Classを貼り付けてください。
私のウィジェットクラスには、デフォルトの配列である変数w_arg
があることを追加してください。例えば。
var $w_arg = array(
'order'=> 'ASC'
);
あなたの<option>
sはvalue=
を必要としません、さもなければどんな値も送りません...本質的に今value=''
、それは私があなたが見ているものである、ということです。
あなたの<select>
はvalue
属性もtype="text"
属性も持つべきではありません。