it-swarm.com.de

Wie kann ich die Schaltfläche "Neu hinzufügen" in meinem eigenen Beitragstyp entfernen?

Ich habe viele benutzerdefinierte Beitragstypen, die die Funktion [Benutzerdefinierten Beitragstyp hinzufügen] benötigen, aber ich habe den benutzerdefinierten Beitragstyp "Info" und ich muss dem benutzerdefinierten Beitragstyp "Info" nicht "Neu" hinzufügen. Also möchte ich den Button oben entfernen, der "Add About" sagt.

Das ist was ich meine:

enter image description here

Irgendeine Idee, wie ich das entfernen kann?

7
Lucas Santos

Siehe unten :

function disable_new_posts() {
// Hide sidebar link
global $submenu;
unset($submenu['edit.php?post_type=CUSTOM_POST_TYPE'][10]);

// Hide link on listing page
if (isset($_GET['post_type']) && $_GET['post_type'] == 'CUSTOM_POST_TYPE') {
    echo '<style type="text/css">
    #favorite-actions, .add-new-h2, .tablenav { display:none; }
    </style>';
}
}
add_action('admin_menu', 'disable_new_posts');
5
Helping Hands

Eine schönere Lösung wäre, die Fähigkeit zum Erstellen eines benutzerdefinierten Post-Typs zu deaktivieren:

Übergeben Sie einfach den Parameter 'create_posts' => false, im Capabilities-Array, wenn Sie register_post_type aufrufen.

$args = array(
        'label'               => __( 'Custom Post Type', 'text_domain' ),
        'description'         => __( 'Custom Post Type', 'text_domain' ),
        'labels'              => $labels,
        'supports'            => array( ),
        'hierarchical'        => false,
        'public'              => true,
        'show_ui'             => true,
        'show_in_menu'        => true,
        'show_in_nav_menus'   => true,
        'show_in_admin_bar'   => true,
        'has_archive'         => true,
        'exclude_from_search' => false,
        'publicly_queryable'  => true,
        'map_meta_cap'        => true,
        'capability_type' => 'custom_post_type',
        'capabilities' => array(
            'create_posts' => false
        )
    );
    register_post_type( 'custom_post_type', $args );
23
TompaLompa

Die Antwort von @ TompaLompa wurde bearbeitet, da sie unvollständig war. Das Hinzufügen von create_posts => false funktioniert nicht, wenn map_meta_cap nicht auf true gesetzt ist.

Wenn Sie diesen Parameter nicht einstellen (oder auf false setzen), wird auch die Bearbeitung des Beitragstyps deaktiviert. Dies liegt daran, dass Sie jeder Benutzerrolle edit_post-Funktionen hinzufügen müssen, um add AND edit Ihren Beitragstyp zu ändern.

Wenn Sie diesen Parameter festlegen, wird das WP interne Standard-Metafunktionshandling verwendet, damit es für Sie funktioniert, wenn Sie keine genauere Kontrolle über die Rollenfunktionen benötigen als die standardmäßigen WP.

2
bynicolas

Wenn Sie dann nur Add New entfernen möchten und custom_post_type nicht verwenden, sollten Sie 'capability_type' => 'custom_post_type' nicht verwenden. Sie sollten diesen Code entfernen. Viel Glück :)

Die Demo ist also unten:

array(
'labels' => $member_labels,
'has_archive' => true,
'public' => true,
'hierarchical' => true, // like page
'rewrite' => array('slug' => 'member_pages'),
'supports' => array(
    'title',
    'editor',
    'excerpt',
    'custom-fields',
    'thumbnail',
    'page-attributes',
),
'taxonomies' => array('post_tag', 'cm_club'),
// 'capability_type' => 'custom_post_type',
'capabilities' => array(
    'create_posts' => false,
),
'map_meta_cap' => true,
)
0
Ni Xiaoni

Am besten installiere ich das Add-Admin-Javascript-Plugin und aktiviere es. Gehe dann zu den Einstellungen und füge Javascript hinzu. Schreibe diesen Code in das letzte Feld

$('.wrap .wp-heading-inline').remove();
$('.wrap .page-title-action').remove();
$('#wp-admin-bar-new-content').remove();
0
Navesh Kintali