web-dev-qa-db-de.com

Spezifisches Fußzeilen-Widget für bestimmte Seiten anzeigen

Ich habe ein neues Fußzeilen-Widget mit diesem Code registriert.

register_sidebar(array(
  'name' => esc_html__( 'Footer Sidebarprestige', 'realtor' ),
  'id' => 'footer-sidebarprestige',
  'description' => esc_html__( 'Widgets in this area will be shown in Footer Area.', 'realtor' ),
  'class'=>'',
  'before_widget'=>'<li id="%1$s"  class="col-md-3 col-sm-6 widget %2$s">',
  'after_widget'=>'</li>',
  'before_title' => '<h5>',
  'after_title' => '</h5>'
));

Ich habe es in meiner footer.php-Datei so genannt:

<ul class="row">

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

 </ul>

  <ul class="row">

   <?php dynamic_sidebar('footer-sidebarprestige'); ?>

 </ul>

Die Fußzeilenleiste ist das ursprüngliche Widget, und die Fußzeilenleiste ist das, das ich hinzugefügt habe. So wie es jetzt ist, wenn ich dem Widget-Bereich, den ich hinzugefügt habe, ein Widget hinzufüge, wird es unter dem Original angezeigt, und ich verstehe, warum.

Was ich versuche zu tun. Rufen Sie den Widget-Bereich auf, den ich nur für bestimmte Seiten-IDs hinzugefügt habe. Grundsätzlich wird nur bei aufgerufenen Seiten-IDs das neu erstellte Fußzeilen-Widget und nicht der ursprüngliche Widget-Bereich angezeigt.

2
Joe

Es gibt verschiedene Möglichkeiten, dies zu erreichen:

A. Verwenden Sie CSS, um Widgets basierend auf der Seite, auf der Sie sich befinden, ein- und auszublenden. Dies ist in Ordnung, um dieses Problem zu umgehen, aber es löst Ihr Problem nicht wirklich, insbesondere wenn Sie viele Seiten/Widgets haben.

B. Rufen Sie einen anderen Widget-Bereich in Ihrer Vorlagendatei mit bedingter Logik auf

<ul class="row">
   <?php if(is_page('my-page')){
      dynamic_sidebar('footer-sidebarprestige');
   } ?> 
</ul>

C. Verwenden Sie ein Plugin wie Widget Logic , um die bedingte Logik für die Widgets selbst zu verwenden. Anschließend können Sie eine Bedingung wie is_page('my-page') für die Anzeige des Widgets auf Widget-Basis hinzufügen.

2
Pim

Ich verstehe, dass Sie ein Widget auf bestimmten Seiten anzeigen möchten, richtig? Sie könnten ein Plugin dafür verwenden: https://wordpress.org/plugins/widget-context/

0
Remzi Cavdar

Finden Sie es mit folgendem Code heraus:

<ul class="row">

   <?php if ( is_page( 1111 )) : ?>
   <?php dynamic_sidebar('footer-sidebarprestige'); ?>
   <?php else :?>
   <?php dynamic_sidebar('footer-sidebar'); ?>
   <?php endif; ?>

  </ul>

Danke Pim, du hast mich auf den richtigen Weg geschickt, um meine Antwort zu bekommen

0
Joe