このコードを見つけて、名前と値が異なる新しい入力ボックスを挿入する方法を知りたいと思いました。
これは私が持っている現在のコードです:[編集済み]
public function form( $instance )
{
$user_id = isset ( $instance['user_id'] ) ? $instance['user_id'] : array();
$user_id_num = count( $user_id );
$user_id[ $user_id_num + 1 ] = '';
$user_loc = isset ( $instance['user_loc'] ) ? $instance['user_loc'] : array();
$user_loc_num = count( $user_loc );
$user_loc[ $user_loc_num + 1 ] = '';
$user_html = array();
$user_id_counter = 0;
$user_loc_counter = 0;
foreach ( $user_id as $name => $value )
{
$user_html[] = sprintf(
'User ID<br/><input type="text" name="%1$s[%2$s]" value="%3$s" class="widefat">Location<br/><input type="text" name="%1$s[%2$s]" value="%3$s" class="widefat">',
$this->get_field_name( 'user_id' ),
$user_id_counter,
esc_attr( $value ),
$this->get_field_name( 'user_loc' ),
$user_loc_counter,
esc_attr( $value )
);
$user_id_counter += 1;
$user_loc_counter += 1;
}
print 'New User' . join( '<br />', $user_id_html );
}
このコードが行うことは、設定が保存されると、ユーザー IDの新しい入力フィールドを自動生成することです。
私の問題は、新しいUser IDとLocationを入力すると、 User IDとLocationの 2 つの新しい入力フィールドが生成されるように、 User IDフィールドの横にLocation の新しい入力フィールドを挿入する方法です。user_loc
追加したかったコードは、次のようなものです。
Location<br/> <input type="text" name="%1$s[%2$s]" value="%3$s" class="widefat">
の隣に
User ID<br/><input type="text" name="%1$s[%2$s]" value="%3$s" class="widefat">