Cómo editar widgets en WordPress

Pregunta:

En el menú Apariencia -> Widgets hay una lista de widgets que puede arrastrar y soltar para mostrar en la barra lateral.

¿Dónde está el código HTML / PHP para estos widgets personalizados?

He estado en la Referencia de funciones de WordPress pero no pude encontrar nada. Seguramente estos widgets deben extraerse de una plantilla HTML / PHP.

La razón por la que quiero saberlo es que los títulos de los widgets por defecto son etiquetas <h3> y quiero cambiarlas a etiquetas <h5> . También necesito agregar algunas <hr /> y otras cosas.

Busqué en el archivo theme/includes/widgets.php pero no encontré nada.

Por cierto, estoy usando una copia de Twenty Eleven para modificar mi tema.

El código en theme/sidebar.php es para (!dynamic_sidebar()) , sin embargo, mi barra lateral es dinámica, por lo que este código es inútil.

Respuesta:

La API de widgets de WordPress es la forma en que se crean varios widgets y se registran las barras laterales.

Al crear un nuevo widget, hay variables que se pueden agregar a cualquier widget. Estos obtienen su valor de los argumentos deregister_sidebars .

args (cadena / matriz) (opcional)
Construye la barra lateral basada en los valores de 'nombre' e 'id'. Predeterminado: Ninguno
name : name barra lateral.
id : id barra lateral.
before_widget : HTML para colocar antes de cada widget.
after_widget : HTML para colocar después de cada widget.
before_title : HTML para colocar antes de cada título.
after_title : HTML para colocar después de cada título.

Ejemplo:

<?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 );
   }

Widget de ejemplo:

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' );
}

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım