Le menu Apparence -> Widgets contient une liste de widgets que vous pouvez faire glisser pour les afficher dans la barre latérale.
Où se trouve le code HTML/PHP pour ces widgets personnalisés?
Je suis sur la référence de fonction de WordPress mais je n'ai rien trouvé. Ces widgets doivent sûrement être extraits d'un modèle HTML/PHP.
La raison pour laquelle je veux savoir est que les titres de widget par défaut sont des tags <h3>
et je veux les changer en tags <h5>
. Aussi, j'ai besoin d'ajouter des <hr />
et d'autres choses.
J'ai regardé dans le fichier theme/includes/widgets.php
mais rien trouvé.
J'utilise une copie de Twenty Eleven pour modifier mon thème en passant.
Le code dans theme/sidebar.php
est pour (!dynamic_sidebar())
, mais ma barre latérale est dynamic, ce code est donc inutile.
Le API WordPress Widgets est la façon dont différents widgets sont créés et les barres latérales enregistrées.
Lors de la création d'un nouveau widget, certaines variables peuvent être ajoutées à n'importe quel widget. Ceux-ci tirent leur valeur des arguments register_sidebars
.
args (chaîne/tableau) (facultatif)
Construit la barre latérale basée sur les valeurs 'name' et 'id'. Par défaut: aucunname
- Nom de la barre latérale.id
- Identifiant de la barre latérale.before_widget
- HTML à placer avant chaque widget.after_widget
- HTML à placer après chaque widget.before_title
- HTML à placer avant chaque titre.after_title
- HTML à placer après chaque titre.
<?php
add_action( 'widgets_init', 'prefix_register_sidebars' );
function prefix_register_sidebars() {
$args = array(
'name' => 'My 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 );
}
class MY_Widget extends WP_Widget {
function my_widget( $args, $instance ) {
$widget_ops = array(
'description' => 'My Widget Description'
);
parent::WP_Widget(false, 'My Widget Name', $widget_ops );
}
function widget() { // This controls the display of the widget
$title = 'My Widget Title';
echo $before_widget; // Outputs the the 'before_widget' register_sidebars setting
echo $title; //Will be wrapped in the 'before_title' and 'after_title' settings
echo '<p>This is my widget output</p>';
echo $after_widget; //Outputs the 'after_widget' settings
}
}
add_action( 'widgets_init', 'prefix_register_widgets' );
function prefix_register_widgets() {
register_widget( 'my_widget' );
}
c'est dans le functions.php
function twentyeleven_widgets_init () {
register_widget( 'Twenty_Eleven_Ephemera_Widget' );
register_sidebar( array(
'name' => __( 'Main Sidebar', '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>',
) );