2010-11-18 21 views
16

Estoy perdido un poco.Wordpress - mostrar widget específico

Digamos que tengo un dynmic footer-siderbar. Fácil hasta ahora.

<footer> 
    <?php get_sidebar("name") ?> 
</footer> 

Displys it in the footer.

Pero aquí estamos. Quiero cada widget dentro de mi rejilla:

 <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> 

Así get_sidebar no es una opción ahora, ya que muestra todos los widgets en una fila. Y no quiero editar widgets en sí.

¿Cómo lo hacen en los temas?

Gracias.

Respuesta

15

Usted puede usar la función 'the_widget' para esto:

<?php the_widget($widget, $instance, $args); ?> 

Más información se puede encontrar en la Wordpress Codex - The_Widget reference.

+2

Buena idea, pero por lo que yo sé the_widget requiere nombre del widget como primer parámetro y no sé lo que va a ser el nombre de aparatos en el pie de página. Solo tengo el nombre de la barra lateral. – fomicz

+2

¿Se las arregló para usar the_widget para mostrar un widget existente (en lugar de crear uno nuevo)? ¿Cómo lo lograste? – NPC

+1

¿qué pones en instancia y $ args? ¿Cómo sabes qué poner? – ahnbizcad

2

Ésta es una buena referencia, así - Function Reference/dynamic sidebar « WordPress Codex

Si se utiliza el método de 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> 

A continuación, podría utilizar un estilo CSS para posicionar los widgets de la barra lateral a través del pie de página.

Editar para incluir lo siguiente ...

Arras tema de 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 A continuación, coloca a través de los widgets la página.

+0

Gracias, he estado cavando Codex durante unas horas, pero todavía no tuve suerte. – fomicz

+0

Ver la edición anterior, eso podría ser un poco más útil. –

+0

Además, si echas un vistazo al tema de Arras, están ejecutando la misma idea en el pie de página: http://demo.arrastheme.com/ –

0

Como alternativa, también se puede utilizar:

<?php dynamic_sidebar('sidebar-1'); ?> 
0

puede utilizar las opciones Widget Plugin para restringir o controlar la visibilidad de los widgets en cualquiera de las páginas y dispositivos; disponible de forma gratuita en el repositorio: https://wordpress.org/plugins/widget-options/. O intente usar widget_display_callbackhttps://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); 

enter image description here

Cuestiones relacionadas