it-swarm.com.de

Wie kann ich erreichen, dass meine benutzerdefinierten Beitragstypen in der Datei nav-menus.php 'Menu' angezeigt werden?

Ich habe ein kleines Problem mit meinen benutzerdefinierten Beitragstypen. Ich kann sie in meinem Design gut erstellen, aber ich kann sie nicht dazu bringen, im Menübildschirm angezeigt zu werden ... zumindest nicht standardmäßig.

Ich habe versucht, meinem Code Menü- und UI-Flags hinzuzufügen (siehe unten), aber keine Würfel.

Interessanterweise werden die benutzerdefinierten Beitragstypen (manchmal) im Bildschirm "Menü" gut angezeigt, wenn ich das Plugin "Benutzerdefinierte Beitragstypen" aktiviere. Dies scheint mir darauf hinzudeuten, dass es einen Schritt gibt, den ich irgendwo vermisse, und dass das UI-Plugin "Benutzerdefinierte Beitragstypen" dieses Flag setzt und zulässt, dass mein benutzerdefinierter Beitragstyp und Taxonomien in der Datei "nav-menus.php" angezeigt werden. Menü 'Bildschirm.

edit :: Das obige Bit wurde beantwortet. Vielen Dank, Milo. Ich hätte sie auf der Registerkarte "Bildschirmoption" aktivieren sollen.

Gibt es eine Möglichkeit, den benutzerdefinierten Beitragstyp ohne Verwendung einer Taxonomie als Menüelement verfügbar zu machen? Ich werde es versuchen und erklären. In diesem Fall habe ich einen Portfolio-Beitragstyp erstellt.

ein. Wenn es in der Datei nav-menus.php erscheint, kann ich einzelne Seiten auswählen, die dem Menü hinzugefügt werden sollen. Das ist nicht ideal.

b. Alternativ kann ich die Portfolio-Seiten einer Kategorie zuweisen (nennen wir es Widgets) und alle Seiten, die Widgets zugewiesen sind, werden auf der Archivseite angezeigt. Dies wirft eine weitere Frage auf: Kann ich die Zuweisung jeder neuen Portfolio-Seite zu mindestens einer Standardkategorie erzwingen, wie sich die "Posts" in WP verhalten? Diese Lösung funktioniert die meiste Zeit, bis jemand vergisst, einer neuen Portfolio-Seite eine Kategorie zuzuweisen ...

c. Die dritte Option besteht darin, den Umschreibe-Slug zu verwenden und einfach ein benutzerdefiniertes Menüelement zu erstellen. Zeigen Sie (in diesem Fall) auf "/ portfolio /". Das funktioniert gut mit meinen Permalinks. WordPress fügt diesem Menüelement dann jedoch keine Klassen ".current-post-item" oder ".current-menu-parent" oder ".current-post-parent" hinzu, wenn eine Portfolio-Seite angezeigt wird, was bedeutet, dass ich sie nicht verwenden kann CSS, um den Menüeintrag "Portfolio" hervorzuheben, wenn Portfolio-Seiten angezeigt werden, wie ich es bei allen anderen Seiten/Unterseiten und Posts auf der Site kann. Dies ist zwar keine allzu große Sache, bedeutet jedoch eine weniger konsistente Benutzeroberfläche für Website-Besucher.

Hier ist mein Code zum Registrieren der benutzerdefinierten Beitragstypen. Wie Sie sehen, habe ich eine Menge 'show_in _...' hinzugefügt, aber ohne Erfolg. Ich habe versucht, die Flags zu entfernen, sie einzeln hinzuzufügen und zu testen (jedes Mal mit einer sauberen Datenbank), aber ohne Erfolg. Wie bereits erwähnt, scheint das Plugin für die Benutzeroberfläche "Benutzerdefinierte Beitragstypen" dieses Verhalten (meistens) zu ermöglichen und darauf hinzudeuten, dass mir ein Schritt außerhalb dieses Registrierungscode fehlt.

Danke im Voraus.

add_action( 'init', 'toshihiro_register_portfolio_content_type');
function toshihiro_register_portfolio_content_type(){
    register_post_type('tosh_portfolio',
    array(
         'labels' => array (
             'name' => 'Portfolio Pages',
             'singular_name' => 'Portfolio Page',
             'menu_name' => 'Portfolios',
             'add_new' => 'Create Portfolio Page',
             'add_new_item' => 'Create New Portfolio Page',
             'edit' => 'Edit Portfolio Page',
             'edit_item' => 'Edit Portfolio Page',
             'new_item' => 'New Portfolio Page',
             'view' => 'View Portfolio Page',
             'view_item' => 'View Portfolio Page',
             'search_items' => 'Search Portfolio Pages',
             'not_found' => 'No Portfolio Pages Found',
             'not_found_in_trash' => 'No Portfolio Pages found in Trash',
         ),
        'description' => 'Portfolio or product or project pages',
        'supports' => array('title', 'editor', 'excerpt', 'revisions', 'thumbnail'),
        'public' => true,
        'show_ui' => true,
        'show_in_menu' => true,
        'show_in_nav_menus' => true,
        'query_var' => true,
        'has_archive' => true,
        'hierarchical' => false,
        'can_export' => true,
        'menu_icon' => trailingslashit(TOSH_IMAGES_URI) . 'toshihiro_icon.png',
        'menu_position' => 33,
        'rewrite' => array('slug' => 'portfolio'),
    )
);
register_taxonomy('tosh_cat_port',array (0 => 'tosh_portfolio',),array( 'hierarchical' => true,
                                                            'label' => 'Portfolio Categories',
                                                            'singular_label' => 'Portfolio Category',
                                                            'show_ui' => true,
                                                            'query_var' => true,
                                                            'show_in_nav_menus' => true,
                                                            'rewrite' => array('slug' => 'portfolio_cat'),
                                                             ) );
register_taxonomy('tosh_tag_port',array (0 => 'tosh_portfolio',),array( 'hierarchical' => false,
                                                            'label' => 'Portfolio Tags',
                                                            'singular_label' => 'Portfolio Tag',
                                                            'show_ui' => true,
                                                            'show_in_nav_menus' => true,
                                                            'query_var' => true,
                                                            'rewrite' => array('slug' => 'portfolio_tags'),
                                                             ) );
}
3
Toshihiro

Bitte vergewissern Sie sich, dass unter Aussehen -> Menü die Option Scree Option oben angezeigt wird, und vergewissern Sie sich, dass die CPT-Benutzeroberfläche angekreuzt ist, damit sie angezeigt wird.

1
user100847

Sie können erzwingen, dass der benutzerdefinierte Beitragstyp aktiviert bleibt, indem Sie die aktuelle Benutzeroption 'metaboxhidden_nav-menus' bearbeiten:

function display_post_type_nav_box(){

    $hidden_nav_boxes = get_user_option( 'metaboxhidden_nav-menus' );

    $post_type = 'foobar'; //Can also be a taxonomy slug
    $post_type_nav_box = 'add-'.$post_type;

    if(in_array($post_type_nav_box, $hidden_nav_boxes)):
        foreach ($hidden_nav_boxes as $i => $nav_box):
            if($nav_box == $post_type_nav_box)
                unset($hidden_nav_boxes[$i]);
        endforeach;
        update_user_option(get_current_user_id(), 'metaboxhidden_nav-menus', $hidden_nav_boxes);
    endif;
}
add_action('admin_init', 'display_post_type_nav_box');
1
Brian Fegter