Mein Widget aktualisiert seine Werte nicht, wenn auf Speichern geklickt wird

Also das ist mein erster Versuch, ein Widget zu erstellen, das die functionalität hat, einen einfachen Bild-Rollover-Effekt zu erzeugen (wenn jemand es will, wenn es fertig ist, hinterlasse mir eine Nachricht).

Jetzt habe ich ein Beispiel-Widget heruntergeladen und einige Änderungen vorgenommen, ich habe immer noch nicht den HTML-Teil für die Ausgabe berührt, also ignorieren Sie dieses Bit. Jetzt ist mein Problem, wenn ich auf Speichern klicke, gehen die Werte in den Feldern zu ihren Standardwerten zurück, und sie taten dies nicht auf dem Beispielwidget. Hier ist mein Code:

 'example', 'description' => __('A widget that creates a rollover image effect with a hyperlink. ', 'example') ); $control_ops = array( 'width' => 300, 'height' => 350, 'id_base' => 'Rollover Widget' ); $this->WP_Widget( 'example-widget', __('Example Widget', 'example'), $widget_ops, $control_ops ); } function widget( $args, $instance ) { extract( $args ); //Our variables from the widget settings. $link = apply_filters('widget_link', $instance['link'] ); $image = $instance['image']; $rollover_image = $instance['rollover_image']; echo $before_widget; // Display the widget link if ( $link ) echo $before_link . $link . $after_link; //Display the name printf( '

' . __('Hey their Sailor! My name is %1$s.', 'example') . '

', $image ); printf( '

' . __('Hey their Sailor! My name is %1$s.', 'example') . '

', $rollover_image ); echo $after_widget; } //Update the widget function update( $new_instance, $old_instance ) { $instance = $old_instance; //Strip tags from link and name to remove HTML $instance['link'] = strip_tags( $new_instance['link'] ); $instance['image'] = strip_tags( $new_instance['image'] ); $instance['rollover_image'] = strip_tags( $new_instance['rollover_image'] ); return $instance; } function form( $instance ) { //Set up some default widget settings. $defaults = array( 'link' => __('Example', 'example'), 'image' => __('/images/editorial.png', 'example') , 'rollover_image' => __('/images/editorial.png', 'example') ); $instance = wp_parse_args( (array) $instance, $defaults ); ?>

<label for="get_field_id( 'link' ); ?>"> <input id="get_field_id( 'link' ); ?>" name="get_field_name( 'link' ); ?>" value="" style="width:100%;" />

<label for="get_field_id( 'image' ); ?>"> <input id="get_field_id( 'image' ); ?>" name="get_field_name( 'image' ); ?>" value="" style="width:100%;" />

<label for="get_field_id( 'rollover_image' ); ?>"> <input id="get_field_id( 'rollover_image' ); ?>" name="get_field_name( 'image' ); ?>" value="" style="width:100%;" />

Und hier ist der Beispielwidgets-Code

  'example', 'description' => __('A widget that displays the authors name ', 'example') ); $control_ops = array( 'width' => 300, 'height' => 350, 'id_base' => 'example-widget' ); $this->WP_Widget( 'example-widget', __('Example Widget', 'example'), $widget_ops, $control_ops ); } function widget( $args, $instance ) { extract( $args ); //Our variables from the widget settings. $title = apply_filters('widget_title', $instance['title'] ); $name = $instance['name']; $show_info = isset( $instance['show_info'] ) ? $instance['show_info'] : false; echo $before_widget; // Display the widget title if ( $title ) echo $before_title . $title . $after_title; //Display the name if ( $name ) printf( '

' . __('Hey their Sailor! My name is %1$s.', 'example') . '

', $name ); if ( $show_info ) printf( $name ); echo $after_widget; } //Update the widget function update( $new_instance, $old_instance ) { $instance = $old_instance; //Strip tags from title and name to remove HTML $instance['title'] = strip_tags( $new_instance['title'] ); $instance['name'] = strip_tags( $new_instance['name'] ); $instance['show_info'] = $new_instance['show_info']; return $instance; } function form( $instance ) { //Set up some default widget settings. $defaults = array( 'title' => __('Example', 'example'), 'name' => __('Bilal Shaheen', 'example'), 'show_info' => true ); $instance = wp_parse_args( (array) $instance, $defaults ); ?> //Widget Title: Text Input.

<label for="get_field_id( 'title' ); ?>"> <input id="get_field_id( 'title' ); ?>" name="get_field_name( 'title' ); ?>" value="" style="width:100%;" />

//Text Input.

<label for="get_field_id( 'name' ); ?>"> <input id="get_field_id( 'name' ); ?>" name="get_field_name( 'name' ); ?>" value="" style="width:100%;" />

//Checkbox.

<input class="checkbox" type="checkbox" id="get_field_id( 'show_info' ); ?>" name="get_field_name( 'show_info' ); ?>" /> <label for="get_field_id( 'show_info' ); ?>">

Solutions Collecting From Web of "Mein Widget aktualisiert seine Werte nicht, wenn auf Speichern geklickt wird"

In $control_ops = array( 'width' => 300, 'height' => 350, 'id_base' => 'example-widget' ); id_base sollte ohne Leerzeichen sein und in Ihrem Rollover-Bild ist Ihr Name falsch, Sie haben den Namen auf echo $this->get_field_name( 'image' ); wenn es echo $this->get_field_name( 'rollover_image' ); sein soll echo $this->get_field_name( 'rollover_image' );

 add_action ( 'widgets_init' , 'my_widget' ) ; function my_widget () { register_widget ( 'MY_Widget' ) ; } class MY_Widget extends WP_Widget { function MY_Widget () { $widget_ops = array ( 'classname' => 'example' , 'description' => __ ( 'A widget that creates a rollover image effect with a hyperlink. ' , 'example' ) ) ; $control_ops = array ( 'width' => 300 , 'height' => 350 ) ; $this -> WP_Widget ( 'example-widget' , __ ( 'Example Widget' , 'example' ) , $widget_ops , $control_ops ) ; } function widget ( $args , $instance ) { extract ( $args ) ; //Our variables from the widget settings. $link = apply_filters ( 'widget_link' , $instance[ 'link' ] ) ; $image = $instance[ 'image' ] ; $rollover_image = $instance[ 'rollover_image' ] ; echo $before_widget ; // Display the widget link if ( $link ) echo $before_link . $link . $after_link ; //Display the name printf ( '

' . __ ( 'Hey their Sailor! My name is %1$s.' , 'example' ) . '

' , $image ) ; printf ( '

' . __ ( 'Hey their Sailor! My name is %1$s.' , 'example' ) . '

' , $rollover_image ) ; echo $after_widget ; } //Update the widget function update ( $new_instance , $old_instance ) { $instance = $old_instance ; //Strip tags from link and name to remove HTML $instance[ 'link' ] = strip_tags ( $new_instance[ 'link' ] ) ; $instance[ 'image' ] = strip_tags ( $new_instance[ 'image' ] ) ; $instance[ 'rollover_image' ] = strip_tags ( $new_instance[ 'rollover_image' ] ) ; return $instance ; } function form ( $instance ) { //Set up some default widget settings. $defaults = array ( 'link' => 'Example' , 'image' => '/images/editorial.png' , 'rollover_image' => '/images/editorial.png' ) ; $instance = wp_parse_args ( ( array ) $instance , $defaults ) ; ?>

< ?php } }