Möchten Sie den benutzerdefinierten Beitragstyp als Untermenü im Menü zur Beitragsbearbeitung anzeigen? Obwohl es wahrscheinlich ein Plugin dafür gibt, haben wir einen schnellen Code-Schnipsel erstellt, den Sie verwenden können, um benutzerdefinierte Beitragstyp-Menüs als Untermenü in WordPress anzuzeigen.
Anweisungen:
Sie müssen diesen Code nur zur functions.php-Datei Ihres Themes oder in ein websitespezifisches Plugin einfügen:
function nacin_register_slideshows_post_type() {
register_post_type( 'slideshow', array(
'labels' => array(
'name' => 'Slideshows',
'singular_name' => 'Slideshow',
),
'public' => true,
'show_ui' => true,
'show_in_menu' => 'edit.php',
'supports' => array( 'title' ,'thumbnail', 'editor' ),
) );
}
add_action( 'init', 'nacin_register_slideshows_post_type' );
Hinweis: Wenn Sie zum ersten Mal Code-Schnipsel in WordPress hinzufügen, lesen Sie bitte unseren Leitfaden, wie Sie Code-Schnipsel richtig in WordPress hinzufügen, damit Sie Ihre Website nicht versehentlich beschädigen.
Wenn Ihnen dieser Code-Schnipsel gefallen hat, ziehen Sie bitte in Betracht, unsere anderen Artikel auf der Website zu lesen, wie z. B.: 43 beste Fotografie-Themes für WordPress und wie man ein Kontaktformular in WordPress erstellt.
Ich registriere post_type mit 'Neuen Eintrag hinzufügen', aber 'Neuen Eintrag hinzufügen' wird nicht im Untermenü angezeigt. Haben Sie Vorschläge für mein Problem?
Schön. Ich versuche, dies einen Schritt weiter zu bringen und den Beitragstyp an eine benutzerdefinierte Menüseite anzuhängen. Bisher kein Erfolg... irgendwelche Gedanken?
Ihre Frage ist alt, aber ich dachte, dies könnte für jemand anderen nützlich sein.
Ich habe lange im WP-Quellcode gesucht, um dasselbe zu tun:
Ich habe ein benutzerdefiniertes Menü, das mit add_menu_page() erstellt wurde. Es hat eine Handvoll
Untermenüpunkte. Ich habe einen benutzerdefinierten Beitragstyp, der mit diesem Menü zusammenhängt, und ich
wollte, dass die Links zum Hinzufügen/Auflisten dieses Beitragstyps Untermenüpunkte sind.
Kurze Antwort: Kein einfacher Weg, dies in WP zu tun. Die Art und Weise, wie
es die Menüs und die Benutzeroberfläche für benutzerdefinierte Beitragstypen generiert, bedeutet, dass es keinen einfachen Aufruf gibt, den Sie machen können.
Lösung:
1. Registrieren Sie Ihren Beitragstyp mit den
folgenden Optionen:
'show_ui' => true,
'show_in_menu' => false
In
diesem Beispiel ist mein benutzerdefinierter Beitragstyp acct_notes
2. Fügen Sie in der functions.php-Datei Ihres Themes oder Ihrer Plugin-Datei eine Aktion zu
admin_menu hinzu:
add_action('admin_menu',
'modify_admin_menus');
3. Fügen Sie submenu_pages für die beiden UI-Links des Beitrags hinzu – Beiträge auflisten, neuen Beitrag erstellen.
Der erste Parameter ist der Slug des Menüs, zu dem Sie ihn hinzufügen. Der zweite
ist der Name, der auf der Seite angezeigt wird. Der dritte ist, wie der Link angezeigt wird. Der vierte ist die Berechtigung, die zum Zugriff darauf erforderlich ist. Der fünfte ist der Slug
für diesen Menüpunkt. Und der letzte ist die Funktion, die die Ausgabe generiert. In
diesem Fall werden wir sie nicht verwenden, daher können wir NULL übergeben.
add_submenu_page('members', 'Account Notes', 'Account Notes',
'manage-options', 'view_account_notes', NULL);
4. Der letzte Schritt ist die Funktion, die diese Untermenü-Links so ändert, dass
sie zu den richtigen Seiten der Beitrags-UI führen.
function modify_admin_menus(){
global $submenu;
if(array_key_exists('members', $submenu)){
foreach($submenu['members'] as $key => $value){
$k =
array_search('view_account_notes', $value);
if($k){
$submenu['members'][$key][$k] =
(current_user_can($submenu['members'][$key][1]))?
admin_url('/edit.php?post_type=acct_notes') : '';
}
$l = array_search('new_account_note', $value);
if($l){
$submenu['members'][$key][$l] =
(current_user_can($submenu['members'][$key][1]))?
admin_url('/post-new.php?post_type=dojo_acct_notes') : '';}
}
}
}
In der Funktion wird überprüft, ob unser oberstes Menüelement (Mitglieder) im globalen $submenu-Array vorhanden ist – es könnte fehlen, wenn der Benutzer keine Berechtigung zum Zugriff darauf hat. Wenn ja, wird geprüft, ob dieses oberste Menüelement eine Untermenüseite mit dem Slug „view_account_notes“ hat – was wir in add_submenu_page zugewiesen haben. Schließlich wird die in add_submenu_page zugewiesene Berechtigung überprüft und wenn der aktuelle Benutzer diese Berechtigung hat, wird der neue Link ausgegeben. Wenn nicht, wird der Link komplett entfernt.
Wir führen dieselbe Prüfung zweimal durch – einmal für den Link zum Auflisten unseres benutzerdefinierten Beitragstyps und einmal für den Link zum Hinzufügen eines neuen benutzerdefinierten Beitragstyps.
Es wäre weitaus besser, diese Funktion integriert zu haben, aber dies ermöglicht es Ihnen, benutzerdefinierte Beitrags-Benutzeroberflächen zu jedem gewünschten Menü hinzuzufügen.
Vielen Dank. Können Sie mir bitte helfen? Ich habe ein Problem: Ich möchte ein Menü in WordPress-Admin erstellen, das viele untergeordnete benutzerdefinierte Beitragstypen enthält, um die Verwaltung zu erleichtern. Beispiel:
Menü Einrichtungen umfassen Beitragstypen: – Besprechungen; – Hochzeiten; – SPA
Vielen Dank für Ihre Hilfe.
guter Hack. Danke.
kein Problem, jederzeit,
Es ist kein Hack, es ist ein Feature