Creare un widget personalizzato

Creato il 01 gennaio 1970 da Decadeweb @simone_marchese
Tutorial

Nel medesimo articolo vi ripporto le sequenze e il codice da utilizzare per la costruzione di un widget su piattaforma Wordpress.

Il widget viene progetatto per fornire un organizzazione dei vari elementi della bara laterale (sidebar) senza dover lavorare sul codice del template.

Andiamo ad indicare il codice essenziale per creare il nostro primo widget che farà visualizzare la stringa da noi inserita nella colonna laterale.

Definiamo la costruzione del Widget nel seguente modo

<?php
class HelloWord extends WP_Widget {
/** constructor */
function HelloWord() {
parent::WP_Widget(false, $name = 'HelloWord',array('description'=>'Inserendo il Widget nell\'area
vedremo la scritta da voi inserita'));
}

La seguente sezione permette l'impostazione della grafica e l'output della nostra stringa nella sidebar

/** @see WP_Widget::widget */
function widget($args, $instance) {
extract( $args );
$title = apply_filters('widget_title', $instance['title']);
$stringa = $instance['stringa'];
?>
<?php echo $before_widget; ?>
<?php if ( $title )
echo "<h2 class='sidebar-title'>". $title ." ".$cat_article."</h2>"; ?>
<?php
echo $stringa;
?>
<?php echo $after_widget; ?>
<?php
}

Di seguito eseguiamo l'update del widget, mantenendo i dati sempre aggiornati all'ultima modifica

/** @see WP_Widget::update */
function update($new_instance, $old_instance) {
$instance = $old_instance;
/* assegno le istanze ed elimino i tag html */
$instance['title'] = strip_tags($new_instance['title']);
$instance['stringa'] = strip_tags($new_instance['stringa']);
return $instance;
}

Creiamo il form per gestire le voci che compongono il Widget

/** @see WP_Widget::form */
function form($instance) {
$title = esc_attr($instance['title']);
$stringa = esc_attr($instance['stringa']);
?>
<p>
<label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:'); ?></label>
<input class="widefat" id="<?php echo $this->get_field_id('title'); ?>"
name="<?php echo $this->get_field_name('title'); ?>" type="text"
value="<?php if($title){ echo $title;} else{ echo"Your String"; } ?>" />
</p>
<p>
<label for="<?php echo $this->get_field_id('stringa'); ?>"><?php _e('Stringa:'); ?></label>
<input class="widefat" id="<?php echo $this->get_field_id('stringa'); ?>"
name="<?php echo $this->get_field_name('stringa'); ?>" type="text"
value="<?php if($stringa){ echo $stringa; }else{ echo "Hello Word"; } ?>" /> </p>
<?php
}
}

Registriamo il nostro Widget

// register FooWidget widget
add_action('widgets_init', create_function('', 'return register_widget("HelloWord");'));
?>

Per agevolarvi nella creazione del primo Widget potete scaricare il file nel seguente link...

Download Widget


Autore

Sviluppatore web, aree riservete e gestionali.
Svolgo con passione e determinazione il proprio lavoro dedicando tempo alla ricerca e all'approfondimento di novità.


Sito web dell'autore