Entfernen Sie die Bearbeitungs- oder Hinzufügefunktion für den benutzerdefinierten Beitragstyp

Ist es möglich, alle Verweise auf “Bearbeiten” oder “Hinzufügen” von einem bestimmten Beitragstyp auf dem Postlistenbildschirm in admin zu entfernen?

Was ich im Grunde brauche, ist, dass für diesen Post-Typ alle definierten Rollen, egal was sie sind, nur eine Liste dieser Posts sehen und nichts damit anfangen können, außer sie zu löschen. Das bedeutet, dass Sie die Schaltfläche “Add myposttype” sowie die Schaltfläche “Bearbeiten |” entfernen müssen Quick-Edit-Links unter jedem Eintrag des Listenpfosten-Bildschirms.

In meinem benutzerdefinierten Post-Typ sind dies meine capabilitätsbezogenen Einstellungen:

'capability_type' => array('food_item','food_items'), 'map_meta_cap' => true, 'capabilities' => array( 'publish_posts' => 'publish_food_items', 'edit_posts' => 'edit_food_items', 'edit_others_posts' => 'edit_others_food_items', 'delete_posts' => 'delete_food_items', 'delete_others_posts' => 'delete_others_food_items', 'read_private_posts' => 'read_private_food_items', 'edit_post' => 'edit_food_item', 'delete_post' => 'delete_food_item', 'read_post' => 'read_food_item' 

In meiner Plugin-Init-function füge ich Folgendes hinzu:

  global $wp_roles; $wp_roles->add_cap( 'administrator', 'edit_food_item' ); $wp_roles->add_cap( 'administrator', 'edit_food_items' ); 

Zu diesem Zeitpunkt kann der Administrator den Eintrag “Nahrungsmittel” im Menü überhaupt nicht sehen.

Solutions Collecting From Web of "Entfernen Sie die Bearbeitungs- oder Hinzufügefunktion für den benutzerdefinierten Beitragstyp"

Zum Beispiel für den Post-Typ “Moomin” geben Sie beim Definieren des benutzerdefinierten Post-Typs seinen “capability_type” als “moomin” an.

Dies gibt Ihnen die ‘Fähigkeiten’ edit_moomin ‘usw., die Sie dann aus einzelnen Rollen entfernen können, zB:

 global $wp_roles; // remove capability edit_moomin from role editor $wp_roles->remove_cap( 'editor', 'edit_moomin' ); 

@Simon Forster behauptet, dass readonly Posts möglich ist, wenn ja, dann sollte dies den Job machen:

 $wp_roles->add_cap( 'editor', 'read_moomin' ); 

Sie könnten es entfernen, indem Sie einige CSS in Ihrem Plugin im Admin-Bereich verwenden

In Ihrer functions.php Datei Link zu einigen CSS (Referenz: http://codex.wordpress.org/Function_Reference/wp_enqueue_style )

 add_action('admin_enqueue_scripts', 'my_admin_script'); function my_admin_script() { wp_register_style( 'myPluginStylesheet', plugins_url('stylesheet.css', __FILE__) ); } 

Das CSS:

 a[href="post-new.php?post_type=events"], #adminmenu a[href="edit.php?post_type=events"], #adminmenu a.editinline, #adminmenu a[title="Edit this item"] { display:none; opacity:0; } 

Im CSS müssen Sie die Verweise auf “Ereignisse” durch den Namen Ihres benutzerdefinierten Beitragstyps ersetzen. Dies funktioniert IE7 + Ich glaube, diese Selektoren zu verwenden.

Wie gewünscht…

 add_action( 'init', 'create_my_post_types' ); function create_my_post_types() { register_post_type( 'name_of_your_post_type_singular', array( 'public' => true, 'capability_type' => 'name_of_your_post_type_singular' ), ) ); } add_action('admin_init', 'give_user_read', 10, 0); function give_user_edit() { if(current_user_can('edit_others_posts')) { global $wp_roles; $wp_roles->add_cap('author','read_name_of_your_post_type_plural' ); $wp_roles->add_cap('editor','read_name_of_your_post_type_plural' ); etc. etc. } } 

Ich habe den Benutzerrollen die Lesefunktion hinzugefügt. Da ich niemanden bearbeitet oder gelöscht habe, werden sie es nicht haben. Da ich Autor und Herausgeber Lesezugriff gewährt habe, werden sie es haben.

Falls Sie sich nicht sicher sind, was die Fähigkeiten sein werden, wenn Sie den Typ wie oben hinzugefügt haben, werden Sie die folgenden Fähigkeiten generieren

 'capabilities' => array( 'publish_posts' => 'publish_name_of_your_post_type_plural', 'edit_posts' => 'edit_name_of_your_post_type_plural', 'edit_others_posts' => 'edit_others_name_of_your_post_type_plural', 'delete_posts' => 'delete_name_of_your_post_type_plural', 'delete_others_posts' => 'delete_others_name_of_your_post_type_plural', 'read_private_posts' => 'read_private_name_of_your_post_type_plural', 'edit_post' => 'edit_name_of_your_post_type_singular', 'delete_post' => 'delete_name_of_your_post_type_singular', 'read_post' => 'read_name_of_your_post_type_singular' )