Estoy tratando de agregar un div al contenido de un widget en mi barra lateral dinámica.
Aquí está el código de registro;
register_sidebar(array(
'name' => "Sidebar1",
'id' => 'home-sidebar-1',
'before_widget' => '<div class="sidebar-box">',
'after_widget' => '</div>',
'before_title' => '<div class="title">',
'after_title' => '</div>',
));
Pero este código causa así;
<div class="sidebar-box">
<div class="title">{WIDGET TITLE}</div>
{WIDGET CONTENT}
</div>
Esto es lo que estoy tratando de hacer;
<div class="sidebar-box">
<div class="title">{WIDGET TITLE}</div>
<div class="content">
{WIDGET CONTENT}
</div>
</div>
¿Cómo se puede hacer?
theme-development
widgets
MBraiN
fuente
fuente
the_widget()
no se usa en ladynamic_sidebar()
función, es una forma de llamar a cualquier widget con las opciones que especifique en su lugar. Sin embargo, es otro lugar para filtrar, por lo que mi solución no cubre esa eventualidad. SaludosAgregue el segundo
div
al parámetro de título:fuente
Me gustó la idea de las respuestas @tosco y @sanchothefat; sin embargo, he tenido problemas con esa combinación porque, si bien
empty( $settings[ 'title' ]
podría ser cierto, el widget en sí podría generar un título predeterminado si no se configura ninguno. Este título se envuelve en lasbefore_title
yafter_title
de marcado y de nuevo los saltos de página. Ese es el caso con algunos de los widgets predeterminados de todos modos.Es más fácil limitarse a los parámetros estándar de registro de widgets;
y luego agregue una acción de filtro según la respuesta de Marventus aquí;
http://wordpress.org/support/topic/add-html-wrapper-around-widget-content
fuente
Esto es lo que haces para lograr esto:
Cuando no haya título, obtendrá:
Cuando haya un título obtendrás:
Para asegurarse de que el primer content-div vacío no se muestre en el último caso, agregue esto a su CSS:
fuente
Después de mirar las respuestas anteriores, creo que solucioné el problema que Cmorales identificó con la respuesta de sanchothefat. Defina su widget de la siguiente manera:
Es importante que se eliminen los valores predeterminados
before_title
yafter_title
. Después de algunas pruebas y errores, noté que el primer filtro que mostraba un título predeterminado erawidget_title
. Luego use elwidget_title
filtro así:Básicamente,
<div class="panel-heading"><h3 class="panel-title">
es mibefore_title
y</h3></div>
es miafter_title
. Finalmente, usedynamic_sidebar_params
para anteponer un div de cierre para nuestro ajuste de contenido:No es bonito, pero funciona.
fuente
Solo cambio ligeramente el código para que no necesite tocar register_sidebar . Registre una barra lateral de manera regular:
Y a continuación se muestra el código modificado de la solución de Sanchothefat:
fuente
Como se menciona en los comentarios, algunos widgets principales agregan su propio título que luego se envuelve dos veces con el contenido div. Para eliminarlos, simplemente puede devolver una cadena vacía. El único inconveniente es que debe ingresar todos los títulos manualmente.
Corrígeme si me falta algo aquí, pero creo que es bastante sólido.
fuente