わかりました、私は私自身のウィジェットを開発しています、そして私は巨大な問題を抱えています。
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>
(...)
OK。今私がタイプするとき
<?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'] ?>
何もしません。私はdefault-widgets.phpを含む至る所で見てきましたが、すべてのデフォルトプラグインはほとんど動的に生成されたオプションリストを使用するので、私はWordを理解しません。
私は1つの項目リストしか使いませんでしたが、実際にはもっと長いです。この要素の値にアクセスする方法がわからないため、選択した要素を保存する方法もわかりません。
何か案は?私はこれに一日かけて過ごし、ゆっくりと怒った。
[編集]
上で述べたように、各機能に同じ更新コードを使用しているので、更新機能については説明しませんでした。
function update( $new_instance, $old_instance ) {
$instance = $old_instance;
$instance['example'] = strip_tags( $new_instance['example'] );
return $instance;
}
上記の私のコメントを見てください...あなたはget_field_id()
であるべきところでname-attributeに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.']'
を返します
私は最近バックエンドのワードプレスのセレクトボックスに関する記事を書いた、それはあなたの何人かを助けるかもしれない: