Ich möchte meiner Plugin-Einstellungsseite Bildschirmoptionen hinzufügen, wie sie im Dashboard verfügbar sind.
Ich habe versucht, die add_option
Methode des WP_Screen
Objekts zu verwenden, und festgestellt, dass es nur zwei Optionen unterstützt. per_page
und layout_columns
.
Weiß jemand, welche Bildschirmoption zu verwenden ist, um Optionen wie die auf der Dashboard-Seite abzurufen?
Bearbeiten :
Lassen Sie mich erklären, was ich ein bisschen versuche.
Ich habe verschiedene Abschnitte in meinem Bulk Delete Plugin und in jedem Abschnitt können Benutzer Beiträge anhand einiger Kriterien (wie Kategorie, Tags, benutzerdefinierte Taxonomie usw.) löschen. Ich möchte, dass Benutzer auswählen können, welche Abschnitte sie verwenden möchten und welche Abschnitte sie ausblenden möchten, ähnlich wie auf der Dashboard-Seite, auf der Benutzer auswählen können, welche Dashboard-Widgets sie anzeigen und welche ausblenden möchten.
Um dies zu implementieren, möchte ich eine Liste von Kontrollkästchen (eines für jeden Abschnitt) anzeigen und den Benutzer auswählen lassen, welches angezeigt werden soll.
Um die Liste der Kontrollkästchen anzuzeigen, musste ich die add_option
Methode des WP_Screen
Objekts aufrufen . Dabei habe ich herausgefunden, dass die aktuelle add_option
Funktion nur diese beiden Typen unterstützt und die anderen einfach ignoriert werden.
- pro Seite
- layout_columns
Es werden jedoch nur Kontrollkästchen auf der Dashboard-Seite angezeigt. Ich möchte wissen, wie man eine ähnliche Sache im Abschnitt mit den Bildschirmoptionen auf meiner benutzerdefinierten Administrationsseite repliziert.
Antworten:
Sie müssen keine neue Bildschirmoptionszeile erfinden. Verwenden Sie einfach die richtigen Metaboxen.
Derzeit zeichnen Sie Pseudo-Metaboxen:
Du solltest das tun:
Dann registrieren Sie Ihre eigenen Metaboxen bei
add_meta_box()
.Lesen Sie die Meta-Boxen auf benutzerdefinierten Seiten von Stephen Harris, um alle Details zu erfahren ( Demo auf GitHub ).
Der wichtigste Punkt ist: Sie erhalten die Bildschirmoptionen für diese Felder kostenlos.
Und wenn WordPress eines Tages das innere Markup für Metaboxen ändert, funktioniert Ihr Code wahrscheinlich immer noch, weil Sie die API verwendet haben.
quelle
Sie können dies tun, indem Sie den richtigen Filter in der
\WP_Screen
Klasse verwenden. So stellen Sie sicher , dass Sie es nicht einschalten auf standardmäßig:So blenden Sie die Registerkarte ein oder aus
Der folgende Filter zeigt, wie die Registerkarte ein- oder ausgeblendet wird. Da es einen besseren Filter gibt, ist der folgende Weg von größerem Nutzen, wenn Sie das Ausblenden der Registerkarte erzwingen müssen, wenn diese bereits vorhanden ist:
So zeigen Sie die Registerkarte an und fügen benutzerdefinierten Inhalt hinzu
Die folgende
amount
Abbildung zeigt eine Registerkarte mit Einstellungen, die ein Eingabefeld enthält, das den Wert enthält , den Sie auf Ihrer Seite auf beliebige Weise verwenden können (z. B. zum Einschränken der$wpdb
Abfrageergebnisse).quelle
Hier ist ein vollständiges, kurzes Beispiel, das auf den Meta-Boxen auf benutzerdefinierten Seiten von Stephen Harris basiert :
Gleicher Code wie das Wesentliche
Verweise
https://codex.wordpress.org/Dashboard_Widgets_API
quelle