Ich habe einen benutzerdefinierten Beitragstyp, Jobs, mit 3 Taxonomien im Admin-Menü.
Eine der Taxonomien ist der Status, der entweder aktiv oder geschlossen ist. Ich möchte einen Menüpunkt unter Jobs für aktive Jobs. Ich habe es mit diesem Code erstellt
add_submenu_page(
'edit.php?post_type=jobs',
'Active Jobs',
'Active Jobs',
'manage_options',
'edit.php?post_type=jobs&jobstatus=67'
);
Dies funktioniert einwandfrei, außer dass der Menüpunkt Jobs hervorgehoben bleibt, wenn die Menüoption Aktive Jobs aktiv ist. Siehe Screenshot
Ich habe in diesem Artikel Aktuelle Klasse im Admin-Menü mit add_submenu_page () gelesen , um den übergeordneten Slug nicht als ersten Parameter einzuschließen . Ich weiß nicht, wie ich das Untermenü im richtigen Navigationsbereich anzeigen soll, wenn ich den Dateinamen-Slug entferne.
Zu diesem Zeitpunkt verwende ich keine Rückruffunktion. Ich führe lediglich dieselbe URL wie die Standard-Untermenüoption Jobs aus, außer bei Abfrageparametern, die die angezeigten Beiträge filtern. Wenn das Problem durch Verschieben in eine Rückruffunktion behoben wird, kann ich das tun. Aber ich weiß nicht, was in der Rückruffunktion passieren soll. Ich möchte die Standard-Bearbeitungsseite für benutzerdefinierte Beitragstypen anzeigen, nur mit einem vorhandenen Taxonomiefilter. Danke für die Hilfe
quelle
'edit.php?&post_type=jobs&jobstatus=67'
... die zuerst&
nicht da sein sollte, nach dem?
..Antworten:
Ich habe diese Arbeit mit den Posts-Menüs und dem Draft-Status gemacht. Es basiert auf jQuery, um die Listenelementklassen zu ändern. Passen Sie sich an Ihren Beitragstyp und Ihre URLs an.
Das ist das Ergebnis:
quelle
Hier ist eine Lösung, die ich mir gerade ausgedacht habe und die jQuery nicht verwendet:
Es ist ein Filter ,
parent_file
inwp-admin/menu-header.php
dem vor der Ausgabe das Menü rechts läuft. Der Inline-Kommentar lautet:Es ist nur ein Filter für die globale Variable
$parent_file
und ich bin nicht sicher, was es tut, aber wir werden diesen Filter verwenden, um$submenu_file
stattdessen die globale Variable zu ändern , wodurch das hervorgehobene Untermenü festgelegt wird. Dies ist also die Lösung in Ihrem Fall:Sie können dies mit jeder URL-Formatierung anpassen. Zum Beispiel verwende ich das Format
admin.php?page=my_plugin_slug&action=myaction
für die Untermenüs meiner Plugins, um meine Untermenüs hervorzuheben:PS: Ich habe auch versucht, die Aktion
admin_menu
festzulegen$submenu_file
, und sie hat in meinem Fall (benutzerdefinierte Plugin-Seite / Slug) funktioniert, aber nicht füredit.php
Untermenüs (Ihr Fall). Also habe ich nach einer anderen Aktion / einem anderen Filter gesucht, die / der später ausgeführt wird, und es war der Filterparent_file
.quelle
Ich fand heraus, dass Sie auch HTML-Entitäten für Ihren Link verwenden müssen. da hast du
Sie können versuchen, das kaufmännische Und in das entsprechende HTML-Entitätsäquivalent zu ändern
so hättest du
Das hat bei mir funktioniert ... Ich habe auch die Ausgabezeichenfolge für das Untermenü und das übergeordnete Menü getestet und überprüft, ob sie übereinstimmen. Dies kann eine kleine Utility-Funktion zum Auschecken sein
quelle