Cum să editezi widget-urile în WordPress
În meniul Aspect -> Widget-uri există o listă de widget-uri pe care le poți trage și plasa pentru a le afișa în bara laterală.
Unde se află codul HTML/PHP pentru aceste widget-uri personalizate?
Am căutat în Referința Funcțiilor WordPress dar nu am găsit nimic. Cu siguranță aceste widget-uri trebuie să fie preluate dintr-un șablon HTML/PHP.
Motivul pentru care vreau să știu este că titlurile widget-urilor sunt implicit tag-uri <h3>
și vreau să le schimb în tag-uri <h5>
. De asemenea, trebuie să adaug câteva <hr />
și alte elemente.
M-am uitat în fișierul theme/includes/widgets.php
dar nu am găsit nimic.
Folosesc o copie a temei Twenty Eleven pentru a-mi modifica tema.
Codul din theme/sidebar.php
este pentru (!dynamic_sidebar())
, însă bara mea laterală este dinamică așa că acest cod este inutil.

WordPress Widgets API este modul în care sunt create diverse widget-uri și înregistrate barele laterale.
Atunci când creezi un widget nou, există variabile care pot fi adăugate oricărui widget. Acestea își obțin valoarea din argumentele register_sidebars
.
args (string/array) (opțional)
Construiește o bară laterală bazată pe valorile 'name' și 'id'. Implicit: Niciunul
name
- Numele barei laterale.
id
- ID-ul barei laterale.
before_widget
- HTML de plasat înaintea fiecărui widget.
after_widget
- HTML de plasat după fiecare widget.
before_title
- HTML de plasat înaintea fiecărui titlu.
after_title
- HTML de plasat după fiecare titlu.
Exemplu:
<?php
add_action( 'widgets_init', 'prefix_register_sidebars' );
function prefix_register_sidebars() {
$args = array(
'name' => 'Bara Mea Laterală',
'id' => 'bara-mea-laterala',
'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 );
}
Exemplu de Widget:
class MY_Widget extends WP_Widget {
function my_widget( $args, $instance ) {
$widget_ops = array(
'description' => 'Descrierea Widget-ului Meu'
);
parent::WP_Widget(false, 'Numele Widget-ului Meu', $widget_ops );
}
function widget() { // Aceasta controlează afișarea widget-ului
$title = 'Titlul Widget-ului Meu';
echo $before_widget; // Afișează setarea 'before_widget' din register_sidebars
echo $title; //Va fi încadrat în setările 'before_title' și 'after_title'
echo '<p>Acesta este conținutul widget-ului meu</p>';
echo $after_widget; //Afișează setările 'after_widget'
}
}
add_action( 'widgets_init', 'prefix_register_widgets' );
function prefix_register_widgets() {
register_widget( 'my_widget' );
}

se află în fișierul functions.php
function twentyeleven_widgets_init() {
register_widget( 'Twenty_Eleven_Ephemera_Widget' );
register_sidebar( array(
'name' => __( 'Bara Laterală Principală', '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>',
) );
