Verhindern Sie die zweite Widget-Aktivierung

Gibt es eine Möglichkeit, “das Widget von verfügbaren Widgets zu entfernen”, nachdem Sie es einmal in einem Bereich aktiviert haben? Die Idee besteht darin, dem Benutzer zu ermöglichen, nur eine Instanz davon zu aktivieren.

Solutions Collecting From Web of "Verhindern Sie die zweite Widget-Aktivierung"

Sie können ein Widget für die einmalige Verwendung mit dem folgenden Beispiel erstellen : wp_register_sidebar_widget

Der folgende Code erstellt ein Widget namens “Your Widget”, das in den WordPress Administrative Panels verfügbar wird. Das Widget kann dann zur Anzeige auf eine verfügbare Seitenleiste gezogen werden.

Beachten Sie, dass dieses Widget nur einmal in genau einer der Seitenleisten verwendet werden kann. Für rekursive Widgets (Widgets, die Sie mehrmals hinzufügen und zu mehreren Sidebars hinzufügen können) finden Sie in der Register Widget-function.

function your_widget_display($args) { extract($args); echo $before_widget; echo $before_title . 'My Unique Widget' . $after_title; echo $after_widget; // print some HTML for the widget to display here echo "Your Widget Test"; } wp_register_sidebar_widget( 'your_widget_1', // your unique widget id 'Your Widget', // widget name 'your_widget_display', // callback function array( // options 'description' => 'Description of what your widget does' ) ); 

Sie können JQuery verwenden, um es aus dem Bedienfeld “Avilable Widgets” zu entfernen, wenn es einmal verwendet wurde.

  $( document ).ready( function() { $( '#widgets-right input[value="widget-id_base"]').each( function () { $( '#widgets-left .widget:has(input[value="widget-id_base"])' ).css( 'display', 'none' ); } ); } ); 

Das ist keine wirklich gute Idee. Weil Themes, die ich entwickle, komplexer sind, so dass Sie verschiedene Sidebars durch die verschiedenen Ansichten haben.

Zum Beispiel: Standard-Sidebar: Anzeige neben der Content-Shop-Sidebar: Anzeige neben der Shop-Übersicht

So und jetzt möchte ich Ihr Widget in beide Sidebars platzieren, da es keine Ansicht gibt, in der beide Seitenleisten gleichzeitig sichtbar sind.

Was Sie suchen, ist die Platzierung Ihres Widget in eine Sidebar zu vercasting, wo Ihr Widget noch existiert, oder?