Estoy un poco perdido.
Digamos que tengo una barra lateral de pie de página dinámica. Fácil hasta ahora.
<footer>
<?php get_sidebar("name") ?>
</footer>
Lo muestra en el pie de página.
Pero aquí estamos. Quiero CADA widget dentro de mi cuadrícula:
<footer>
<div style="width: 100px:">
<div style="width: 25%">First widget here</div>
<div style="width: 25%">Second widget here<</div>
<div style="width: 25%">Third widget here<</div>
<div style="width: 25%">Fourth widget here<</div>
</div>
</footer>
Entonces get_sidebar no es una opción ahora, ya que muestra todos los widgets en una fila. Y no quiero editar los widgets en sí.
¿Cómo hacen eso en los temas?
Gracias.
Puede usar la función ‘the_widget’ para esto:
<?php the_widget($widget, $instance, $args); ?>
Se puede encontrar más información en el WordPress Codex – Referencia de The_Widget.
-
Buena idea, pero que yo sepa, the_widget requiere el nombre del widget como primer parámetro y no sé cuál será el nombre de los gadgets en el pie de página. Solo tengo el nombre de la barra lateral.
– fomicz
18 de noviembre de 2010 a las 12:48
-
¿Logró usar the_widget para mostrar un widget existente (en lugar de crear uno nuevo)? ¿Cómo lo lograste?
– PNJ
2 de abril de 2012 a las 11:16
-
¿Qué pones en instancia y $args? como sabes que poner
– ahnbizcad
25 de marzo de 2016 a las 2:22
vince p
Esta es una buena referencia también: Referencia de funciones/barra lateral dinámica « WordPress Codex
Si usa el método en esa página:
<ul id="sidebar">
<?php if ( !dynamic_sidebar() ) : ?>
<li>{static sidebar item 1}</li>
<li>{static sidebar item 2}</li>
<?php endif; ?>
</ul>
Luego, puede usar el estilo CSS para colocar los widgets de la barra lateral en el pie de página.
Editar para incluir lo siguiente…
Arras tema CSS:
#footer { margin: 20px auto 0; width: 980px; background: #ECEBE6; padding-bottom: 10px; border: 1px solid #CCC; }
#footer .widgetcontainer { padding: 5px 10px; min-width: 150px; }
.no-js #footer .widgetcontainer { height: 190px; }
#footer .widgettitle { background: none; border: none; font-size: 14px; color: #444; padding: 0 0 10px; letter-spacing: -1px; }
#footer .widgetcontent { font-size: 12px; background: none; padding: 0; border: none; }
#footer .footer-message { margin: 0; padding: 10px 15px 0; font-size: 11px; }
#footer .footer-message p { margin: 0 0 0.5em; }
#footer .footer-message .floatright { margin-left: 20px; }
#footer-sidebar { overflow: hidden; margin: 10px 10px 0; padding: 0 0 10px; border-bottom: 1px solid #CCC; }
#footer-sidebar .widgetcontainer { float: left; margin: 0; max-width: 250px; }
#footer-sidebar ul { list-style: none; margin: 0; padding: 0; }
#footer-sidebar li { margin: 0 0 3px; }
Codificación de pie de página:
<ul id="footer-sidebar" class="clearfix xoxo">
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('Footer') ) : ?>
<li></li>
<?php endif; ?>
</ul>
En el tema, luego coloca los widgets en la página.
-
Gracias, he estado investigando Codex durante algunas horas, pero aún no he tenido suerte.
– fomicz
18 de noviembre de 2010 a las 12:50
-
Además, si echa un vistazo al tema de Arras, están ejecutando la misma idea en el pie de página: demo.arrastheme.com
– Vince P.
18 de noviembre de 2010 a las 12:58
-
Sí, sé que hay algunos temas gratuitos que hacen esto, pero es totalmente complicado, abrió todos los archivos en el diccionario de la biblioteca, pero no hubo suerte. Hay funciones personalizadas en el pie de página que no funcionan fuera del tema.
– fomicz
18 de noviembre de 2010 a las 13:26
-
Lo sentimos, pero su código incluye TODA la barra lateral en un elemento ul, no funciona.
– fomicz
18 de noviembre de 2010 a las 13:58
Consulte mi nuevo complemento que muestra un widget específico.
Visitar:
http://wordpress.org/extend/plugins/widget-instance/
Alternativamente, también puede usar:
<?php dynamic_sidebar( 'sidebar-1' ); ?>
Puede usar el complemento de opciones de widgets para restringir o controlar la visibilidad de los widgets en cualquier página y dispositivo; disponible de forma gratuita en el repositorio: https://wordpress.org/plugins/widget-opciones/. O intenta usar widget_display_callback
https://developer.wordpress.org/reference/hooks/widget_display_callback/ . Espero que esto ayude.
function custom_display_callback( $instance, $widget, $args ){
if( is_page() ){
return false;
}
return $instance;
}
add_filter( 'widget_display_callback', 'custom_display_callback', 50, 3 );