WordPress fügt dem benutzerdefinierten Menü eine benutzerdefinierte Taxonomie hinzu

Lesezeit: 3 Minuten

Benutzeravatar von Orlando P
Orlando P.

Ich habe gesucht und gesucht und kann keinen anderen Weg finden als das, was ich als “Hack-Methode” bezeichnen werde, um eine benutzerdefinierte Taxonomie zu einem benutzerdefinierten Admin-Menü hinzuzufügen.

add_menu_page(
        'Practice Directory',
        'Practice Directory',
        'read',
        'practice-directory',
        '',
        'dashicons-welcome-widgets-menus',
        40
);

Dann registriere ich meine Beitragstypen und stelle sicher, dass sie verwendet werden

'show_in_menu'          => 'practice-directory',

Dies funktioniert und die benutzerdefinierten Beitragstypen werden in meinem benutzerdefinierten Menü angezeigt.

Eine benutzerdefinierte Taxonomie akzeptiert jedoch keine Zeichenfolge für dieselbe Eigenschaft, nur wahr oder falsch.

    'show_in_menu'          => 'false',

Um es hinzuzufügen, müssen Sie also eine Untermenüseite erstellen

add_submenu_page(
    'practice-directory',
    'Doctors',
    'Doctors',
    'edit_posts',
    'edit-tags.php?taxonomy=doctor',
    false
);

Das ist eine “gehackte” Art, es zu tun.

Gibt es eine andere Art und Weise? Ohne den WordPress-Kern zu modifizieren könnte ich die register_taxonomy-Funktion überschreiben, um eine Zeichenfolge für „show_in_menu“ akzeptieren und der Funktionalität von register_post_type folgen zu können?

angeforderter Screenshot

Geben Sie hier die Bildbeschreibung ein

  • Könnten Sie mir bitte einen Screenshot Ihrer Anforderungen zeigen?

    – Entwicklerm

    6. Februar 2018 um 4:20 Uhr

  • @developerme Ich bin mir nicht sicher, wie ich Ihnen einen Screenshot von dem besorgen soll, wonach ich suche. Wenn Sie verstehen, was add_menu_page und dann die Eigenschaft show_in_menu eines benutzerdefinierten Beitragstyps tun, wissen Sie, dass ich dem Admin-Menü von WordPress einen Menüpunkt hinzufüge. Um dann demselben Menü eine benutzerdefinierte Taxonomie hinzuzufügen, kann dies nicht mit derselben Eigenschaft erfolgen, die beim Registrieren einer benutzerdefinierten Taxonomie verfügbar ist, da sie nur wahr oder falsch und keine Zeichenfolge akzeptiert.

    – Orlando P.

    7. Februar 2018 um 20:19 Uhr

Butchs Benutzeravatar
Butsch

Die einzige Möglichkeit, die ich gefunden habe, besteht darin, ein Untermenü wie Sie zu erstellen und das Menü auf Aktiv zu setzen, wenn wir uns auf der Taxonomie-Seite befinden:

Erstellen Sie Ihr Admin-Menü:

add_menu_page('Page title', 'Menu title', 'read', 'menu_slug', false, 'dashicons-welcome-widgets-menus', 25);

fügen Sie bei Bedarf einen benutzerdefinierten Beitragstyp hinzu:

register_post_type('your_cpt_name', array(
    ...
    'show_in_menu' =>  'menu_slug',//your previously created menu slug
    ...
));

Fügen Sie Ihre benutzerdefinierte Taxonomie hinzu:

register_taxonomy('your_taxonomy_name', 'your_cpt_name', $args);

fügen Sie Ihr Taxo-Untermenü hinzu:

add_submenu_page('menu_slug', 'Page Title', 'Menu Title', 'custom_post_capability', 'edit-tags.php?taxonomy=your_taxonomy_name&post_type=your_cpt_name', false);

Filter zum Hervorheben des Menüs hinzufügen, wenn aktiv:

add_filter('parent_file', 'highlightTaxoSubMenu');

function highlightTaxoSubMenu($parent_file){
    global $submenu_file, $current_screen, $pagenow;
    if ($current_screen->post_type == 'your_cpt_name') {
        if ( $pagenow == 'edit-tags.php' && $current_screen->taxonomy == 'your_taxonomy_name' ) {
            $submenu_file="edit-tags.php?taxonomy=your_taxonomy_name&post_type=your_cpt_name";
        }
        $parent_file="menu_slug";//your parent menu slug
    }
    return $parent_file;
}

Bearbeiten: Wenn Ihr CPT als Untermenü in der Verwaltung platziert ist, können benutzerdefinierte Benutzerrollen keine neuen Posts für dieses CPT erstellen, wenn sie nicht über die Berechtigung „edit_posts“ verfügen (selbst wenn sie über Ihre CPT-Bearbeitungsfähigkeit verfügen). Eine Problemumgehung besteht darin, einen Link „Neuen Beitrag erstellen“ für diesen benutzerdefinierten Beitrag in Ihrem Untermenü hinzuzufügen

add_submenu_page('menu_slug', 'Add', 'Add', 'custom_post_capability', 'post-new.php?post_type=your_cpt_name', false);

Gehen Sie zu Aussehen -> Menü und suchen Sie die Option oben auf dem Bildschirm, klicken Sie darauf und finden Sie, was Sie im Menü anzeigen müssen

1435210cookie-checkWordPress fügt dem benutzerdefinierten Menü eine benutzerdefinierte Taxonomie hinzu

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy