Skip to content

Instantly share code, notes, and snippets.

@mrHiker
Created April 10, 2015 13:12
Show Gist options
  • Select an option

  • Save mrHiker/6c6e6f989a050d7342df to your computer and use it in GitHub Desktop.

Select an option

Save mrHiker/6c6e6f989a050d7342df to your computer and use it in GitHub Desktop.
Wordpress Custom Widget
// Additing Action hook widgets_init
add_action( 'widgets_init', 'buffercode_widget');
function buffercode_widget() {
register_widget( 'buffercode_widget_info' );
}
class buffercode_widget_info extends WP_Widget {
//Name the widget, here Buffercode Widget will be displayed as widget name, $widget_ops may be an array of value, which may holds the title, description like that.
function buffercode_widget_info () {
$this->WP_Widget('buffercode_widget_info', 'Buffercode Widget', $widget_ops ); }
//Designing the form widget, which will be displayed in the admin dashboard widget location.
public function form( $instance ) {
if ( isset( $instance[ 'name' ]) && isset ($instance[ 'domain' ]) && isset($instance[ 'designation' ]) ) {
$name = $instance[ 'name' ];
$domain = $instance[ 'domain' ];
$designation = $instance[ 'designation' ];
}
else {
$name = __( '', 'bc_widget_title' );
$domain = __( '', 'bc_widget_title' );
$designation = __( '', 'bc_widget_title' );
} ?>
<p>Name: <input name="<?php echo $this->get_field_name( 'name' ); ?>" type="text" value="<?php echo esc_attr( $name );?>" /></p>
<p>Domain: <input name="<?php echo $this->get_field_name( 'domain' ); ?>" type="text" value="<?php echo esc_attr( $domain ); ?>" /></p>
<p>Designation: <input name="<?php echo $this->get_field_name( 'designation' ); ?>" type="text" value="<?php echo esc_attr( $designation ); ?>" /></p>
<?php
}
// update the new values in database
function update($new_instance, $old_instance) {
$instance = $old_instance;
$instance['name'] = ( ! empty( $new_instance['name'] ) ) ? strip_tags( $new_instance['name'] ) : '';
$instance['domain'] = ( ! empty( $new_instance['domain'] ) ) ? strip_tags( $new_instance['domain'] ) : '';
$instance['designation'] = ( ! empty( $new_instance['designation'] ) ) ? strip_tags( $new_instance['designation'] ) : '';
return $instance;
}
//Display the stored widget information in webpage.
function widget($args, $instance) {
extract($args);
echo $before_widget; //Widget starts to print information
$name = apply_filters( 'widget_title', $instance['name'] );
$domain = empty( $instance['domain'] ) ? '&nbsp;' : $instance['domain'];
$designation = empty( $instance['designation'] ) ? '&nbsp;' : $instance['designation'];
if ( !empty( $name ) ) { echo $before_title . $name . $after_title; };
echo '<p>Domain: ' . $domain . '</p>';
echo '<p>Designation: ' . $designation . '</p>';
echo $after_widget; //Widget ends printing information
} }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment