Widgets vorinstallieren in WP-Admin

Wenn ein Benutzer das TwentyEleven-Design im Bereich “Admin-Widgets” aktiviert, verfügt der Benutzer bereits über die Main Sidebar mit einigen Standardwidgets. Könnte mir jemand erklären oder in die richtige Richtung weisen, wie ich dasselbe Verhalten für meine Widgets zu einem anderen Thema umsetzen könnte?

Solutions Collecting From Web of "Widgets vorinstallieren in WP-Admin"

Das wird vom Thema nicht wirklich installiert. Diese Widgets werden eingerichtet, sobald Sie WordPress das erste Mal installieren. Wenn Ihr Theme Widgets nicht unterstützt, werden Sie sie nicht sehen.

Der Teil von WordPress, der diese Widgets “installiert”, befindet sich in der wp_install_defaults wp-admin/includes/upgrade.php in der function wp_install_defaults . Hier ist der relevante Teil des Codes. Sie sollten in der Lage sein, Ihre eigenen Widgets nachzurüsten:

 // Set up default widgets for default theme. update_option( 'widget_search', array ( 2 => array ( 'title' => '' ), '_multiwidget' => 1 ) ); update_option( 'widget_recent-posts', array ( 2 => array ( 'title' => '', 'number' => 5 ), '_multiwidget' => 1 ) ); update_option( 'widget_recent-comments', array ( 2 => array ( 'title' => '', 'number' => 5 ), '_multiwidget' => 1 ) ); update_option( 'widget_archives', array ( 2 => array ( 'title' => '', 'count' => 0, 'dropdown' => 0 ), '_multiwidget' => 1 ) ); update_option( 'widget_categories', array ( 2 => array ( 'title' => '', 'count' => 0, 'hierarchical' => 0, 'dropdown' => 0 ), '_multiwidget' => 1 ) ); update_option( 'widget_meta', array ( 2 => array ( 'title' => '' ), '_multiwidget' => 1 ) ); update_option( 'sidebars_widgets', array ( 'wp_inactive_widgets' => array ( ), 'sidebar-1' => array ( 0 => 'search-2', 1 => 'recent-posts-2', 2 => 'recent-comments-2', 3 => 'archives-2', 4 => 'categories-2', 5 => 'meta-2', ), 'sidebar-2' => array ( ), 'sidebar-3' => array ( ), 'sidebar-4' => array ( ), 'sidebar-5' => array ( ), 'array_version' => 3 ) ); 

Also, was Sie (wahrscheinlich) tun möchten, ist Code ähnlich wie oben bei der ersten Aktivierung Ihres Themas aufgeführt. Ich denke, dass dies möglicherweise einige philosophische Probleme verursacht, wenn Sie bestimmte Widgets in bestimmten Bereichen erzwingen. Es stellt sich definitiv die Frage: ” siedbars.php das Widgets sein? Oder sollten sie in deine siedbars.php Datei siedbars.php werden, wenn sie nicht wirklich optional sind?” Widgets sind so konzipiert, dass sie vom Administrator hinzugefügt oder entfernt werden können und nicht für die Ausführung eines Themas benötigt werden.

Wie auch immer, das ist die offizielle Haltung, aber wenn Sie immer noch darauf eingestellt sind, casting Sie einen Blick auf den Haken 'after_switch_theme' als einen möglichen Aktivierungshaken für Ihr Thema. Wahrscheinlich möchten Sie dies nur einmal ausführen. Legen Sie also eine Option für die database fest, nachdem Sie Ihr Design “aktiviert” haben und aktivieren Sie diese Option, bevor Sie den Aktivierungs-Hook registrieren.

Für alle anderen, die auf dieses kleine Snippet stolpern, sollten Sie Folgendes beachten: Wenn Sie das, was WordPress beim ersten Start installiert, außer Kraft setzen möchten, können Sie:

  1. Erstellen Sie eine Datei in wp-content/install.php
  2. Definieren Sie innerhalb dieser Datei eine function namens wp_install_defaults() . Diese function ersetzt die in upgrade.php definierte function wp_install_defaults ()
  3. Es ist eine gute Idee, zuerst die gesamte wp_install_defaults() -function aus der upgrade.php und sie in den bootstrap von install.php upgrade.php , um sicherzustellen, dass die guten Sachen, die Sie behalten möchten, immer noch da sind, denn wenn Sie a definieren wp_install_defaults () -function, es ersetzt vollständig alles in der Standardfunktion.