Ich habe ein benutzerdefiniertes Plugin 'Charts', das ein eigenes Menü hat. In diesem Menü befinden sich Links zu den 3 Seiten des Plugins - "Diagramme", "Diagramm hinzufügen" und "Diagramm bearbeiten". Ich möchte jedoch den Link zu "Diagramm bearbeiten" nicht anzeigen.
So füge ich die betreffende Seite hinzu:
$this->pagehook = add_submenu_page('charts', __('Edit Chart'), __('Edit Chart'), 'edit_charts', 'edit-chart', array(&$this, 'on_show_page'));
Ich habe das Internet durchsucht und kann keinen Weg finden, dies zu tun (das funktioniert). Es ist möglich, ganze Menüs der obersten Ebene zu entfernen (nicht das, was ich brauche), und Sie können einzelne Einträge aus dem $submenu
globalen Menü entfernen (aber dadurch wird auch die registrierte Funktion entfernt), sodass niemand auf die Seite zugreifen kann -
global $submenu;
if(!empty($submenu['charts'])) : foreach($submenu['charts'] as $key => $page) :
if($page[0] === 'Edit Chart') :
/** Removes all permissions to access the page */
//unset($submenu['charts'][$key]);
/** Removes the title, but the menu entry still exists, so it looks odd */
$submenu['charts'][$key][0] = '';
endif;
endforeach;
endif;
Ich habe versucht, es über CSS auszublenden, kann aber keinen Weg finden, dies über den von Wordpress generierten HTML-Code zu erreichen.
<li><a href="admin.php?page=edit-chart" tabindex="1">Edit Chart</a></li>
Ich habe auch über jQuery nachgedacht, aber das hat ähnliche Einschränkungen wie die CSS-Route, und ich glaube nicht, dass ich der einzige bin, der dies jemals gewollt hat - es muss einen Weg geben, ich kann ihn einfach nicht finden!
Alle Hinweise und Tipps geschätzt.
Vielen Dank.
quelle
Antworten:
Verwenden Sie eine Untermenüseite als übergeordneten Slug. Das Admin-Menü hat nur zwei Ebenen, sodass die imaginäre dritte Ebene ausgeblendet wird.
Beispielcode, getestet:
quelle
In den Dokumenten sehen
add_submenu_page()
Sie, dass Sie Ihren Untermenü-Link vor einem Menüelement der obersten Ebene, zu dem er gehört, ausblenden können, indem Sie dasslug
(1. Argument) auf Folgendes setzennull
:Um den gewünschten Menüpunkt hervorzuheben (z. B. "Alle Diagramme" beim Zugriff auf die ausgeblendete Seite "Diagramm bearbeiten"), haben Sie folgende Möglichkeiten:
quelle
submenu_file
sie als aktuell angezeigt. Das Menü der obersten Ebene wurde jedoch nicht geöffnet. Aber wenn ich setzeparent_file
, wp run Funktionget_admin_page_parent()
nach Filtern und ändern Sie es zurück. Für welche wp-Entwicklerparent_file
Filter hinzufügen , wenn die Funktion ohnehin wieder geändert wird. Könntest du helfen?parent_slug
gesetzt alsnull
,page_title
nicht im Titel verwendet.'options.php'
stattdessen aus verwendennull
.