Comment modifier des widgets dans WordPress
-
-
Peut-être que vous cherchez ceci: http://stackoverflow.com/a/2293494Perhaps your looking for this: http://stackoverflow.com/a/2293494
- 0
- 2012-01-16
- Asko
-
`dynamic_sidebar ()`fera une des deux choses unefois appelé,ilfera écho à labarre latérale ou retournerafalse.Donc `if (! Dynamic_sidebar ())`fera écho à labarre latérale oufera une sorte de repli.`dynamic_sidebar()` will do one of two things when called, it will either echo the sidebar, or return false. So `if( !dynamic_sidebar() )` will either echo the sidebar, or do some sort of fallback.
- 0
- 2012-01-16
- mor7ifer
-
2 réponses
- votes
-
- 2012-01-17
L ' API de widgets WordPress permet de créer divers widgetset d'enregistrer lesbarres latérales.
Lors de la création d'unnouveau widget,des variablespeuvent être ajoutées àn'importe quel widget. Ceux-citirent leur valeur des arguments
register_sidebars
.args (chaîne/tableau) (facultatif)
Construit labarre latéraleen fonction de 'nom'et Valeurs «id». Par défaut: Aucun
name
- Nom de labarre latérale.
id
- ID de labarre latérale.
before_widget
- HTML àplacer avant chaque widget.
after_widget
- HTML àplacer après chaque widget.
before_title
- HTML àplacer avant chaquetitre.
after_title
- HTML àplacer après chaquetitre.Exemple:
<?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 ); }
Exemple de widget:
La classeclass 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' ); }
The WordPress Widgets API is how various widgets are created and sidebars registered.
When creating a new widget there are variables that can be added to any widget. Those get their value from the
register_sidebars
arguments.args (string/array) (optional)
Builds Sidebar based off of 'name' and 'id' values. Default: None
name
- Sidebar name.
id
- Sidebar id.
before_widget
- HTML to place before every widget.
after_widget
- HTML to place after every widget.
before_title
- HTML to place before every title.
after_title
- HTML to place after every title.Example:
<?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 ); }
Example Widget:
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' ); }
-
où dois-jemettre cette classe dansmonthèmeenfant?where do i put this class in my child theme?
- 0
- 2014-10-20
- shorif2000
-
- 2012-01-16
c'est dans lefunctions.php
fonction 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>', ) );
it is in the 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>', ) );
Dans lemenu Apparence -> Widgets,il y a une liste de widgets que vouspouvezfaireglisseret déposerpour afficher dans labarre latérale.
Où setrouve le code HTML/PHP de ces widgetspersonnalisés?
J'ai consulté la référence desfonctions de WordPressmaisje n'ai rientrouvé.Ces widgets doivent sûrement êtreextraits d'unmodèle HTML/PHP.
La raisonpour laquelleje veux savoir,c'est que lestitres des widgetspar défaut sont desbalises
<h3>
et je veux les changeren balises<h5>
.J'ai égalementbesoin d'ajouter des<hr />
et d'autres choses.J'ai regardé dans lefichier
theme/includes/widgets.php
maisje n'ai rientrouvé.J'utilise une copie de Twenty Elevenpourmodifiermonthèmeen passant.
Le code dans
theme/sidebar.php
estpour(!dynamic_sidebar())
,maismabarre latérale est dynamique donc ce codeestinutile.