'widget-beginner-video video-widget', 'description' => __( 'Easily to display any type of video.', 'beginner' ) ); // Create the widget. parent::__construct( 'beginner-video', // $this->id_base __( '» Video', 'beginner' ), // $this->name $widget_options // $this->widget_options ); } /** * Outputs the widget based on the arguments input through the widget controls. * * @since 1.0.0 */ function widget( $args, $instance ) { extract( $args ); // Output the theme's $before_widget wrapper. echo $before_widget; // If the title not empty, display it. if ( $instance['title'] ) { echo $before_title . apply_filters( 'widget_title', $instance['title'], $instance, $this->id_base ) . $after_title; } // Display the video. if ( !empty( $instance['video_url'] ) ) { global $wp_embed; echo '
' . $wp_embed->run_shortcode( '[embed]' . stripslashes( $instance['video_url'] ) . '[/embed]' ) . '
'; } elseif ( !empty( $instance['video_code'] ) ) { echo '
' . stripslashes( $instance['video_code'] ) . '
'; } // Close the theme's widget wrapper. echo $after_widget; } /** * Updates the widget control options for the particular instance of the widget. * * @since 1.0.0 */ function update( $new_instance, $old_instance ) { $instance = $new_instance; $instance['title'] = strip_tags( $new_instance['title'] ); $instance['video_url'] = esc_url_raw( $new_instance['video_url'] ); $instance['video_code'] = stripslashes( $new_instance['video_code'] ); return $instance; } /** * Displays the widget control options in the Widgets admin screen. * * @since 1.0.0 */ function form( $instance ) { // Default value. $defaults = array( 'title' => esc_html__( 'Video', 'beginner' ), 'video_url' => '', 'video_code' => '' ); $instance = wp_parse_args( (array) $instance, $defaults ); ?>