So erstellen Sie mehrere Widgets in WordPress mithilfe von For- und Foreach-Schleifen

Veröffentlicht: 2020-01-25

So erstellen Sie mehrere Widgets in WordPress Suchen Sie nach einer dynamischen Möglichkeit, mehrere Widgets in WordPress zu erstellen, ohne zu viel Code zu schreiben? Oder haben Sie ein WordPress-Theme gesehen, mit dem Sie eine Seitenleiste erstellen oder mehrere Widgets aus dem Dashboard erstellen können?

In einem früheren Tutorial habe ich ausführlich erklärt, wie man Seitenleisten in WordPress hinzufügt . Heute werde ich in diesem kurzen Tutorial eine schnelle Lösung mit Ihnen teilen, um mehrere Widgets in WordPress im Handumdrehen zu erstellen. Dies spart nicht nur Zeit, sondern Sie können den Trick auch in mehreren Projekten wiederverwenden, insbesondere wenn Sie ein vielbeschäftigter professioneller WordPress-Entwickler sind.

Schleife zum Erstellen mehrerer WordPress-Seitenleisten

Idealerweise möchten wir eine Funktion verwenden, die die mehreren WordPress-Seitenleisten mithilfe einer Art Schleife erstellt. Wenn Sie diesen Code für das erste Design oder Plugin erstellen, werden Sie ihn in der Entwicklung weiterer Designs und Plugins wiederverwenden.

Diese Funktion kann auch eine Grundlage für den Aufbau eines dynamischen Sidebar-Generators sein, der in einem Theme oder einem WordPress-Plugin verwendet wird. Damit Sie vollständig verstehen, wie dieser Code funktioniert, müssen Sie mit dem Prozess der Erstellung einer WordPress-Seitenleiste vertraut sein, wie ich in diesem Beitrag ausführlich erklärt habe.

Erstellen von WordPress-Widgets

WordPress-Widgets spielen eine entscheidende Rolle, wenn es darum geht, Benutzern zu helfen, neue Inhalte in verschiedenen Bereichen ihrer Website anzuzeigen. In diesem Beitrag erfahren Sie, wie Sie Widget-Bereiche in WordPress erstellen . Ich habe wichtige Tipps und den Code geteilt und in diesem Beitrag auch sehr anschaulich erklärt , wie man eine Seitenleiste in WordPress hinzufügt .

Wenn Sie die Möglichkeit haben, ein Widget im WordPress-Design hinzuzufügen, ist das einfach erstaunlich, da Sie jede neue Funktion in allen Abschnitten Ihrer Website hinzufügen können.

Für einen schnellen Überblick darüber, wie Sie die Seitenleiste oder den Widget-Bereich in WordPress hinzufügen, sollte der folgende Code zur functions.php hinzugefügt werden, um eine Seitenleiste als ersten Schritt beim Hinzufügen eines Widgets in Ihrem WordPress-Design zu registrieren:

 /**
* Registrieren Sie den Widget-Bereich.
*/

Funktion njengah_create_one_widget_tutorial() {

//Sidebar-Funktion registrieren - https://developer.wordpress.org/reference/functions/register_sidebar/

register_sidebar(

  Reihe (
     'name' => __( 'Njengah-Widget-Beispiel', 'textdomain' ),
     'id' => 'Seitenleiste-1',
     'description' => __( 'Widgets hier hinzufügen, damit sie in Ihrer Seitenleiste erscheinen.', 'textdomain' ),
     'before_widget' => '<Abschnitts-ID="%1$s" class="Widget %2$s">',
     'after_widget' => '</section>',
     'before_title' => '<h2 class="widget-title">',
     'after_title' => '</h2>',

   )

  );


}

add_action( 'widgets_init', 'njengah_create_one_widget_tutorial');

Dies ist die Funktion register_sidebar(), die wir verwenden, um ein Widget zur WordPress-Site hinzuzufügen, und das Widget kann nun in der entsprechenden Seitenvorlage mithilfe der Funktion dynamic_sidebar() wie folgt angezeigt werden:

 <?php if ( is_active_sidebar( 'sidebar-1' ) ) : ?>

    <ul id="Seitenleiste">

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

    </ul>

<?php endif; ?>

Erstellen mehrerer Widgets-Seitenleisten in WordPress

Da der Code zum Registrieren der Seitenleiste die Funktion register_sidebar() verwendet hat, um weitere Seitenleisten zu erstellen, müssen Sie diesen Code nur nach Belieben mehrmals wiederholen: Jetzt können wir drei Seitenleisten erstellen, indem wir diesen Code wie folgt wiederholen:

 /**
* Registrieren Sie 3 Widget-Bereiche.
*/

Funktion njengah_create_three_widget_tutorial() {

//Seitenleiste Nr. 1 registrieren

register_sidebar(
   Reihe (
       'name' => __( 'Njengah Sidebar 1 ', 'textdomain' ),
       'id' => 'Seitenleiste-1',
      'description' => __( 'Fügen Sie hier Widgets hinzu, die in Ihrer Seitenleiste 1 angezeigt werden.', 'Textdomain' ),
      'before_widget' => '<Abschnitts-ID="%1$s" class="Widget %2$s">',
      'after_widget' => '</section>',
      'before_title' => '<h2 class="widget-title">',
      'after_title' => '</h2>',
  )
);

//Seitenleiste Nr. 2 registrieren

register_sidebar(
   Reihe (
       'name' => __( 'Njengah Sidebar 2', 'textdomain' ),
        'id' => 'Seitenleiste-2',
        'description' => __( 'Widgets hier hinzufügen, damit sie in Ihrer Seitenleiste 2 erscheinen.', 'textdomain' ),
        'before_widget' => '<Abschnitts-ID="%1$s" class="Widget %2$s">',
        'after_widget' => '</section>',
        'before_title' => '<h2 class="widget-title">',
       'after_title' => '</h2>',
     )
);

//Seitenleiste Nr. 3 registrieren

register_sidebar(
   Reihe (
       'name' => __( 'Njengah Sidebar 3 ', 'textdomain' ),
       'id' => 'Seitenleiste-3',
       'description' => __( 'Widgets hier hinzufügen, damit sie in Ihrer Seitenleiste 3 erscheinen.', 'textdomain' ),
       'before_widget' => '<Abschnitts-ID="%1$s" class="Widget %2$s">',
       'after_widget' => '</section>',
       'before_title' => '<h2 class="widget-title">',
       'after_title' => '</h2>',
      )
   );

}
add_action( 'widgets_init', 'njengah_create_three_widget_tutorial');

Sie können immer mehr Widget-Bereiche erstellen, indem Sie diesen Code wiederholen, den Sie zum Registrieren der Widgets verwenden, und alles funktioniert und es ist cool.

Aber Moment mal! Haben Sie noch nie von einer grundlegenden Regel oder Programmierung gehört – DRY (Don’t Repeat Yourself)?

Dies ist ein einfaches Prinzip, das bedeutet, dass Ihr Code effizient sein und solche Wiederholungen vermeiden sollte, um Redundanzen zu vermeiden. Wir können diesen Code durch etwas Besseres ersetzen, zum Beispiel können wir ein Argument an die Funktion register_sidebar() übergeben, um dies dreimal zu tun.

Erstellen Sie mehrere Widgets in WordPress mit einem Argument

Wir können unser Ziel erreichen, mehrere Widgets in WordPress zu erstellen, indem wir die Funktion register_sidebar() ändern, indem wir ein Array von Argumenten als zweiten Parameter übergeben und der erste Parameter die Anzahl der Widgets ist, die wir erstellen möchten. In diesem Fall können wir den oben geteilten Code wie folgt ändern:

 Funktion create_multiple_sidebar_widgets() {

$args = array(
    'name' => 'Njengah Seitenleiste %d',
    'id' => 'njengah-seitenleiste',
    'description' => 'Eine der Seitenleisten des Njengah-Tutorials',
    'Klasse' => '',
    'before_widget' => '<li id="%1$s" class="widget %2$s">',
    'after_widget' => '</li>',
    'before_title' => '<h2 class="widgettitle">',
    'after_title' => '</h2>'
 );

  register_sidebar( 3, $args );

}
add_action( 'widgets_init', 'create_multiple_sidebar_widgets');

Der Namenswert hat einen Platzhalter %d, der es uns einfach ermöglicht, die Seitenleisten mit den Nummern 1,2 und 3 anzuzeigen.

Dies ist eine schnelle Lösung, um mehrere Widgets in WordPress zu erstellen, aber es ist immer noch nicht die ultimative Lösung. Wir können weitermachen und es verbessern, wie ich gleich demonstrieren werde.

Erstellen Sie mehrere Seitenleisten mit Array in WordPress

Die obige Lösung ist nicht sehr effektiv, da der Titel und die Beschreibung nur auf diejenigen beschränkt sind, die Sie in der Funktion register_sidebar () zuweisen.

Um diese Lösung zu verbessern, können wir ein Array mit Namen, IDs und Beschreibungen einführen, dann verwenden wir eine foreach-Schleife, um die Seitenleisten zu registrieren.

Im Folgenden finden Sie ein Beispiel für das Erstellen mehrerer Widgets mithilfe eines Arrays und einer Foreach-Schleife:

 Funktion create_multiple_sidebar_widgets() {

$njengah_sidebars = array(
  Reihe (
     'name' => 'Widget-Bereich Homepage',
     'id' => 'Widget-Bereich-Homepage',
     'description' => 'Auf der Homepage angezeigte Widgets',
  ),
  Reihe (
      'name' => 'Widget-Bereichskopf',
     'id' => 'widget-area-header',
     'description' => 'In der Kopfzeile angezeigte Widgets',
  ),
  Reihe (
     'name' => 'Fußzeile des Widget-Bereichs',
     'id' => 'widget-area-footer',
     'description' => 'In der Fußzeile angezeigte Widgets',
   ),
  );

   $Standardwerte = Array(
      'name' => 'Njengah Seitenleiste',
      'id' => 'njengah-seitenleiste',
      'description' => 'Die Standardseitenleiste wird auf der linken Seite der Blogseiten in diesem Design angezeigt',
       'Klasse' => '',
      'before_widget' => '<li id="%1$s" class="widget %2$s">',
      'after_widget' => '</li>',
      'before_title' => '<h2 class="widgettitle">',
      'after_title' => '</h2>'
  );

  foreach( $njengah_sidebars als $sidebar ) {

    $args = wp_parse_args( $sidebar, $defaults );

    register_sidebar( $args );
   }

}
add_action( 'widgets_init', 'create_multiple_sidebar_widgets');

Diese Lösung gibt Ihnen die Möglichkeit, in Zukunft mehrere Widgets zu erstellen, da Sie nur alle neuen Widget-Details (Name, ID und Beschreibung) zum Array hinzufügen müssen und das Widget im Handumdrehen erstellt wird.

Erstellen Sie mehrere ähnliche Fußzeilen-Widgets in WordPress

Letztendlich ist dies der beste Ansatz zum Erstellen mehrerer Widgets in WordPress, obwohl die zweite Option auch nützlich sein kann, wenn Sie mehrere ähnliche Widgets wünschen.

Wenn Sie beispielsweise mehrere Fußzeilen-Widgets erstellen möchten, kann es einfacher sein, die for-Schleife wie folgt zu verwenden:

 /**
* Registrieren Sie den Widget-Bereich mit der for-Schleife
*
* @Autor Joe Njenga
*/

Funktion njengah_register_sidebars_dynamically() {

    für ( $i = 1, $n = 5; $i <= $n; $i++ ) {

       register_sidebar(

         Reihe (
               'name' => esc_html__( 'Footer Area #', 'textdomain' ) . $i,
               'id' => 'Fußzeile-' . $i,
               'description' => sprintf( esc_html__( 'The #%s column in footer area', 'textdomain' ), $i ),
               'before_widget' => '<aside id="%1$s" class="widget %2$s">',
               'after_widget' => '</aside>',
               'before_title' => '<h3 class="widget-title">',
              'after_title' => '</h3>',
           )
        );
     }
   }
}
add_action( 'widgets_init', 'njengah_register_sidebars_dynamically' );

Ich denke, dies kann eine der nützlichsten Lösungen zum Erstellen mehrerer Widgets in WordPress sein, da die for-Schleife einfach bis 5 zählt und 5 Widgets erstellt. Sie können die Anzahl einfach in eine beliebige andere Anzahl von Widgets ändern, die Sie möchten, und die mehreren Widgets werden generiert dynamisch on the fly.

Einpacken

Wir haben die drei verschiedenen Möglichkeiten zum Erstellen mehrerer Widgets in WordPress behandelt, und ich hoffe, dies ist nur ein Anfang, um Ihnen den Anstoß zu geben, innovativere Möglichkeiten zum Erstellen mehrerer dynamischer Seitenleisten oder mehrerer Widgets in WordPress-Designs und -Plugins zu entwickeln. Schließlich ist es für jeden WordPress-Entwickler wichtig zu lernen, wie man das DRY-Prinzip nutzt, da es nicht nur Zeit spart, sondern auch die Code-Effizienz verbessert.