Voreingestellte Widgets NUR, nachdem die Site anfänglich erstellt wurde

Ich möchte einige Widgets mit functionen, die in meinem Theme enthalten sind, NUR einstellen, nachdem eine Site anfänglich erstellt wurde (mein Theme ist der Standard für alle neuen Sites in meiner WordPress-Instanz).

Ich möchte nicht, dass meine voreingestellten Widgets vorhandene Widgets ersetzen, wenn ein Benutzer mein Thema aktiviert, sofern sich die vorhandenen Widgetbereiche nicht von denen in meinem Thema unterscheiden.

Ich habe meine widgets_init-function auf die im Thematic-Framework gefunden. Thematisch fügt voreingestellte Widgets unter Verwendung der folgenden Bedingung hinzu:

if ( isset( $_GET['activated'] ) ) 

Wenn Thematic aktiviert ist, löscht es vorhandene Widgets und fügt eigene voreingestellte Widgets hinzu … Ich möchte, dass mein Theme vorhandene Widgets verwendet, wenn sie sich in Widgetbereichen befinden, die mein Theme unterstützt (dh ein Benutzer wechselt von einem untergeordneten Theme zu einem anderen) von denen mein Thema als Elternteil verwenden)

Ich weiß, es gibt Register_activation_hook, aber das scheint für Plugin-functionen und nicht functionen in Themen enthalten sein … Hier sind Fragen:

  1. Gibt es eine Aktion, die NUR ausgeführt wird, nachdem eine Site ursprünglich erstellt wurde?

  2. Alternativ können ihre Bedingungen überprüft werden, um festzustellen, ob eine Website gerade erstellt wurde?

Solutions Collecting From Web of "Voreingestellte Widgets NUR, nachdem die Site anfänglich erstellt wurde"

Warum the_widget() du die benutzerdefinierten Widgets deines Theme nicht mit the_widget() innerhalb eines if ( ! dynamic_sidebar( 'sidebar-name' ) ) Konditionals aus?

z.B

 < ?php if ( !dynamic_sidebar( 'sidebar-right' ) ) { $widgetsidebarrightargs = array( 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '
', 'after_title' => '
' ); the_widget('WP_Widget_Calendar' , 'title=' , $widgetsidebarrightargs ); the_widget( 'oenology_widget_linkrollbycat' , 'title=Oenology Links by Cat' , $widgetsidebarrightargs ); the_widget('WP_Widget_Meta' , 'title=Meta' , $widgetsidebarrightargs ); } ?>

Dies ist, was ich in meinem Thema verwende. Das Widget oenology_widget_linkrollbycat ist ein benutzerdefiniertes Design-Widget. Ersetzen Sie einfach Ihre eigenen Widget-Namen.

Auf diese Weise werden Ihre Widgets standardmäßig auf die angegebene Seitenleiste angewendet, es sei denn und bis der Benutzer über Dashboard -> Appearance -> Widgets eigene Widgets zur Seitenleiste hinzufügt.