Ich habe einen benutzerdefinierten Beitragstyp, der mithilfe eines Formulars auf der Website erstellt wird. Ich möchte die Erstellung neuer Posts von WordPress Admin aus deaktivieren. Gibt es eine Möglichkeit, das zu tun?
Es gibt verschiedene Möglichkeiten (je nachdem, was Sie versuchen):
Du könntest…
remove_cap()
… Entfernen Sie die Schaltfläche Veröffentlichen 1)
1) siehe unten in der Antwort von @toscho
... oder die ganze Meta Box 2)
remove_meta_box( 'submitdiv', 'custom_post_id', 'side' );
2) vereinfachte Version
Du könntest…
… Den Menüeintrag mit löschen
add_action( 'admin_menu', 'myprefix_adjust_the_wp_menu', 999 );
function myprefix_adjust_the_wp_menu() {
$page = remove_submenu_page( 'edit.php', 'post-new.php' );
//or for custom post type 'myposttype'.
//$page = remove_submenu_page( 'edit.php?post_type=myposttype', 'post-new.php?post_type=myposttype' );
}
… Mit per_save_post
hook und $_GET['action']
gar nicht speichern
post-new.php
geladen istEs gibt eine Metafunktion create_posts
, die nicht dokumentiert ist, aber von WordPress verwendet wird, um vor dem Einfügen der verschiedenen 'Add New'-Schaltflächen und -Links zu prüfen. Fügen Sie in Ihrer benutzerdefinierten Post-Typ-Deklaration capabilities
hinzu (nicht zu verwechseln mit cap
) und setzen Sie sie dann wie unten beschrieben auf false
.
register_post_type( 'custom_post_type_name', array(
'capabilities' => array(
'create_posts' => false,
)
));
@ hannit cohen,
Dies ist die beste Möglichkeit, die Schaltfläche Neu hinzufügen oder Neu erstellen in benutzerdefinierten Posttypen auszublenden
'capability_type' => 'post',
'capabilities' => array( 'create_posts' => false ),
'map_meta_cap' => true,
Es ist deaktiviert, neue Posts in benutzerdefinierten Post-Typen sowohl im Admin-Menü als auch über der Liste der Post-Typen zu erstellen.