WordPress – Anzeige eines bestimmten Widgets

Lesezeit: 3 Minuten

Ich bin etwas verloren.

Nehmen wir an, ich habe eine dynamische Fußzeilen-Seitenleiste. 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 in meinem 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>

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

Wie machen sie das in Themen?

Vielen Dank.

Sie können dafür die Funktion ‚the_widget‘ verwenden:

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

Weitere Informationen finden Sie auf der WordPress Codex – The_Widget-Referenz.

  • Gute Idee, aber soweit ich weiß, benötigt the_widget den Widget-Namen als ersten Parameter, und ich weiß nicht, wie die Gadgets in der Fußzeile heißen werden. Ich habe nur den Namen der Seitenleiste.

    – fomiz

    18. November 2010 um 12:48 Uhr

  • Ist es Ihnen gelungen, mit the_widget ein vorhandenes Widget anzuzeigen (anstatt ein neues zu erstellen)? Wie haben Sie es erreicht?

    – NPC

    2. April 2012 um 11:16 Uhr

  • Was setzen Sie in Instanz und $args ein? Woher weißt du, was du setzen sollst?

    – ahnbizcad

    25. März 2016 um 2:22 Uhr

Benutzeravatar von Vince P
Vince P

Das ist auch eine gute Referenz – Funktionsreferenz/dynamische Seitenleiste « 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 könnten dann CSS-Styling verwenden, um die Seitenleisten-Widgets über der Fußzeile zu positionieren.

Bearbeiten Sie, um Folgendes einzufügen …

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

Codierung der Fußzeile:

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

Im Theme platziert es dann die Widgets quer über die Seite.

  • Danke, habe Codex jetzt seit ein paar Stunden ausgegraben, aber immer noch kein Glück.

    – fomiz

    18. November 2010 um 12:50 Uhr

  • Auch wenn Sie sich das Arras-Thema ansehen, wird die gleiche Idee in der Fußzeile ausgeführt – demo.arrastheme.com

    – Vince P

    18. November 2010 um 12:58 Uhr


  • Ja, ich weiß, es gibt ein paar kostenlose Themen, die das tun, aber es ist total kompliziert, jede Datei im Bibliothekswörterbuch geöffnet, aber kein Glück. Es gibt benutzerdefinierte Funktionen in der Fußzeile, die außerhalb des Designs nicht funktionieren.

    – fomiz

    18. November 2010 um 13:26 Uhr

  • Entschuldigung, aber Ihr Code enthält die GANZE Seitenleiste in einem ul-Element, funktioniert nicht.

    – fomiz

    18. November 2010 um 13:58 Uhr

Bitte checken Sie mein neues Plugin aus, das ein bestimmtes Widget anzeigt.

Besuch:
http://wordpress.org/extend/plugins/widget-instance/

Alternativ können Sie auch verwenden:

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

Sie können das Widget Options Plugin verwenden, um die Sichtbarkeit der Widgets auf allen Seiten und Geräten einzuschränken oder zu steuern; kostenlos im Repository verfügbar: https://wordpress.org/plugins/widget-options/. Oder versuchen Sie es mit widget_display_callback https://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 );

Geben Sie hier die Bildbeschreibung ein

1405230cookie-checkWordPress – Anzeige eines bestimmten Widgets

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy