2010-11-18 43 views
16

Ich bin ein wenig verloren.Wordpress - Display spezifische Widget

Nehmen wir an, ich habe eine dynamische Footer-Siderbar. Einfach so weit.

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

Zeigt es in der Fußzeile an.

Aber hier sind wir. Ich möchte jedes Widget Innenseite meiner Raster:

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

So get_sidebar jetzt ist keine Option, da sie alle Widgets in einer Reihe anzeigt. Und ich möchte Widgets nicht selbst bearbeiten.

Wie machen sie das in Themen?

Danke.

Antwort

15

Sie können die 'the_widget' Funktion für diesen Einsatz:

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

Weitere Informationen finden Sie auf der Wordpress Codex - The_Widget reference finden.

+2

Nette Idee, aber soweit ich weiß, the_widget erfordert Widgetnamen als ersten Parameter und ich weiß nicht, was der Name von Gadgets in der Fußzeile sein wird. Ich habe nur den Namen der Sidebar. – fomicz

+2

Haben Sie es geschafft, mit dem Widget ein vorhandenes Widget anzuzeigen (anstatt ein neues Widget zu erstellen)? Wie hast du es erreicht? – NPC

+1

Was setzen Sie in Instanz und $ Args? Woher weißt du was zu tun? – ahnbizcad

2

Dies ist eine gute Referenz als auch - Function Reference/dynamic sidebar « WordPress Codex

Wenn Sie die Methode auf dieser Seite verwenden:

<ul id="sidebar"> 
<?php if (!dynamic_sidebar()) : ?> 
    <li>{static sidebar item 1}</li> 
    <li>{static sidebar item 2}</li> 
<?php endif; ?> 
</ul> 

Sie dann CSS Styling verwenden könnten die Sidebar-Widgets für die Fußzeile zu positionieren.

Bearbeiten gehören die folgenden ...

Arras Thema 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; } 

Footer Codierung:

<ul id="footer-sidebar" class="clearfix xoxo"> 
     <?php if (!function_exists('dynamic_sidebar') || !dynamic_sidebar('Footer')) : ?> 
     <li></li> 
    <?php endif; ?> 
</ul> 

Im Themen es stellt dann die across-Widgets Die Seite.

+0

Vielen Dank, haben Codex für ein paar Stunden graben, aber immer noch kein Glück. – fomicz

+0

Siehe oben Bearbeiten, das könnte ein wenig hilfreicher sein. –

+0

Auch wenn du dir das Arras-Thema ansiehst, haben sie die gleiche Idee über den Fuß - http://demo.arrastheme.com/ –

0

Alternativ können Sie auch:

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

Sie Widget-Optionen Plugin verwenden können, beschränken oder die Widgets Sichtbarkeit steuern auf allen Seiten und Geräte; kostenlos im Repository verfügbar: https://wordpress.org/plugins/widget-options/. Oder versuchen Sie es mit widget_display_callbackhttps://developer.wordpress.org/reference/hooks/widget_display_callback/. Ich hoffe das hilft.

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

Verwandte Themen