wake-up-neo.com

Flexiblere Seitenleiste und Widget-Verwaltung

Ich hätte gerne ein Plugin für eine flexible Seitenleiste/Widget-Verwaltung. Tatsächlich möchte ich einem Benutzer die Möglichkeit geben, auszuwählen, welche Seitenleiste pro Seite/Beitrag angezeigt werden soll.

Ich weiß, dass es viele Sidebar-Plugins gibt. Leider habe ich keinen gefunden, der alle meine Wünsche erfüllt. Ich möchte dies also selbst codieren. Welche der folgenden Möglichkeiten finden Sie am besten und flexibelsten? Oder haben Sie andere Ansätze?

Möglichkeiten

  1. Die register_sidebar ruft ein Plugin/functions.php auf und fügt eine Metabox für die Bildschirme post_edit.php, post_new.php hinzu.

    • Nicht so flexibel. Wenn ein Benutzer 100 Seiten hat und jede Seite eine andere Seitenleiste haben soll, muss der Benutzer zusätzliche Seitenleisten manuell registrieren.
  2. Entspricht Nr. 1, verwendet jedoch eine allgemeine Seitenleistenvorlage mit bedingten Tags, um die Widgets anzuzeigen. Wir könnten auch das Plugin Widget Logic für eine genauere Filterung im Backend verwenden.

    • Gut für einen Programmierer oder erfahrenen WordPress-Benutzer, aber nicht für einen normalen Benutzer. Die bedingten Tags müssen freundlich zugeordnet werden. Außerdem kann is_page(id) Probleme auf mehrsprachigen Websites verursachen, auf denen Posts in einer anderen Sprache mit einer anderen ID gespeichert werden.
  3. Ein flexibler Seitenleisten benutzerdefinierter Beitragstyp. Jeder Beitrag in diesem CPT wird in einer generischen Seitenleistenvorlage verwendet, um den angegebenen Inhalt anzuzeigen. Die Seitenleiste wird auch in einer benutzerdefinierten Metabox ausgewählt. Der Benutzer kann der Seitenleiste mit dem Standard-WYSIWYG-Editor Inhalte hinzufügen, was ein großes Plus ist.

    • Keine „echte“ Sidebar. Daher konnten auf der Widgets-Unterseite im Admin-Bereich keine Widgets mehr hinzugefügt werden. Wir müssen eine eigene Metabox für Widget-Zuweisungen erstellen.
  4. Ändern Sie die Widgets-Unterseite im Admin-Bereich, um Ihre eigenen Seitenleisten in WordPress zu erstellen/zu registrieren. Erstellen Sie auch ein generisches Widget mit einem Standard-WYSIWYG-Editor. Inhalte mit Anhängen können problemlos zum Widget hinzugefügt und in die neu erstellte Seitenleiste verschoben werden. Der Benutzer kann dann diese Seitenleiste mit einem Dropdown-Feld in einer benutzerdefinierten Metabox in den Post-/Seitenadministrationsbildschirmen auswählen. Um die Sidebar anzuzeigen, benötigen wir zusätzlich eine generische Sidebar-Vorlage.

Fazit

Aus meiner Sicht sollte Nr.4 den Trick machen. Gibt es noch andere Möglichkeiten? Oder existiert das schon in einem Plugin?

Danke für deine Antwort

2
rofflox

Es gibt eine Erweiterung namens "Widget Logic". Es fügt jedem Sidebar-Widget im Admin-Bereich ein Feld hinzu, in dem Sie einen Teil des PHP-Codes hinzufügen können, mit dem Sie das archivieren können, was Sie höchstwahrscheinlich benötigen.

Es ist etwas umständlich, funktioniert aber. Zum Beispiel erwähnen Sie, dass Sie für eine mehrsprachige Site immer noch "is_page" verwenden können, da Sie auch ein Array für die Funktion übergeben können, wie folgt: is_page (array (94,71,3)). Mit logischen Operatoren (und/oder/Mit not/xor) können Sie beliebige Kombinationen archivieren.

1
rasjani