Come modificare i widget in WordPress
Nel menu Aspetto -> Widget c'è una lista di widget che puoi trascinare e rilasciare per mostrarli nella barra laterale.
Dove si trova il codice HTML/PHP per questi widget personalizzati?
Ho consultato la Function Reference di WordPress ma non ho trovato nulla. Sicuramente questi widget devono essere caricati da un template HTML/PHP.
Il motivo per cui voglio saperlo è che i titoli dei widget di default sono tag <h3>
e voglio cambiarli in tag <h5>
. Inoltre, ho bisogno di aggiungere alcuni <hr />
e altre cose.
Ho cercato nel file theme/includes/widgets.php
ma non ho trovato nulla.
Sto usando una copia di Twenty Eleven per modificare il mio tema tra l'altro.
Il codice in theme/sidebar.php
è per (!dynamic_sidebar())
, tuttavia la mia barra laterale è dinamica quindi questo codice è inutile.

L'API dei Widget di WordPress è il modo in cui vengono creati vari widget e registrate le sidebar.
Quando si crea un nuovo widget, ci sono variabili che possono essere aggiunte a qualsiasi widget. Queste ottengono il loro valore dagli argomenti di register_sidebars
.
args (stringa/array) (opzionale)
Costruisce la Sidebar basandosi sui valori 'name' e 'id'. Predefinito: Nessuno
name
- Nome della Sidebar.
id
- ID della Sidebar.
before_widget
- HTML da inserire prima di ogni widget.
after_widget
- HTML da inserire dopo ogni widget.
before_title
- HTML da inserire prima di ogni titolo.
after_title
- HTML da inserire dopo ogni titolo.
Esempio:
<?php
add_action( 'widgets_init', 'prefix_register_sidebars' );
function prefix_register_sidebars() {
$args = array(
'name' => 'La mia Sidebar',
'id' => 'my-sidebar',
'before_widget' => '<div id="%1$s" class="widget %2$s">',,
'after_widget' => '</div><hr />',
'before_title' => '<h5 class="widgettitle">',
'after_title' => '</h5>'
);
register_sidebars( $args );
}
Esempio di Widget:
class MY_Widget extends WP_Widget {
function my_widget( $args, $instance ) {
$widget_ops = array(
'description' => 'Descrizione del mio Widget'
);
parent::WP_Widget(false, 'Nome del mio Widget', $widget_ops );
}
function widget() { // Questo controlla la visualizzazione del widget
$title = 'Titolo del mio Widget';
echo $before_widget; // Output delle impostazioni 'before_widget' di register_sidebars
echo $title; //Sarà racchiuso tra le impostazioni 'before_title' e 'after_title'
echo '<p>Questo è l\'output del mio widget</p>';
echo $after_widget; //Output delle impostazioni 'after_widget'
}
}
add_action( 'widgets_init', 'prefix_register_widgets' );
function prefix_register_widgets() {
register_widget( 'my_widget' );
}

si trova nel file functions.php
function twentyeleven_widgets_init() {
register_widget( 'Twenty_Eleven_Ephemera_Widget' );
register_sidebar( array(
'name' => __( 'Sidebar Principale', 'twentyeleven' ),
'id' => 'sidebar-1',
'before_widget' => '<aside id="%1$s" class="widget %2$s">',
'after_widget' => "</aside>",
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
) );
