Deaktivieren Sie Quickedit für bestimmte benutzerdefinierte Post-Typ-Benutzerrolle

Ich scheine irgendwie etwas Grundlegendes zu vermissen (versuche es kurz zu halten, kann aber natürlich mehr Code zur Verfügung stellen)

Ich habe einen CPT mit folgenden Argumenten registriert

'capability_type' => array(CPT_SLUG, CPT_SLUG.'s'), 'map_meta_cap' => true, 'capabilities' => array( 'edit_post' => 'edit_'.CPT_SLUG.'', 'edit_posts' => 'edit_'.CPT_SLUG.'s', 'edit_others_posts' => 'edit_others_'.CPT_SLUG.'s', 'publish_posts' => 'publish_'.CPT_SLUG.'s', 'read_post' => 'read_'.CPT_SLUG.'', 'read_private_posts' => 'read_private_'.CPT_SLUG.'s', 'delete_post' => 'delete_'.CPT_SLUG.'', 'delete_posts' => 'delete_'.CPT_SLUG.'s' ) 

So weit, ist es gut. um die Dinge etwas in Einklang zu bringen mit der Art, wie Benutzerrollen in normalen WP-Posts arbeiten, entferne ich die Fähigkeit für “Autor” -Rollen, indem ich das tue

  $authorRole->remove_cap( 'edit_others_'.CPT_SLUG.'s' ); 

Autoren können den Beitrag anderer Rollen nicht bearbeiten. Obwohl dies funktioniert, habe ich immer noch den Link zum schnellen Bearbeiten in der Liste der CPT-Posts, selbst für Posts, die von einer anderen Rolle erstellt wurden.

Obwohl ich mit der Schnellbearbeitung für Beiträge, die von anderen Rollen erstellt wurden, nichts speichern kann (was natürlich die Idee ist), denke ich nicht, dass der Link für eine schnelle Bearbeitung zuerst da sein sollte (zum Beispiel “normale” WP-Posts nicht ‘). t dies entweder im obigen Szenario zeigen)

Fehle ich einen Filter / eine Aktion, die ich vielleicht hinzufügen muss? Oder gibt es eine andere function, die für den “Autor” entfernt werden muss?

Ich habe mich schon eine ganze Weile umgesehen, kann aber keine andere Lösung finden als die, die Workarounds zu sein scheinen …

Hinweise sehr geschätzt

Solutions Collecting From Web of "Deaktivieren Sie Quickedit für bestimmte benutzerdefinierte Post-Typ-Benutzerrolle"

Sie können versuchen, post_row_actions Hook:

 /** * Hide quick edit * * @internal Used as a callback. * * @see https://developer.wordpress.org/reference/hooks/post_row_actions/ */ function wpse288663_hide_quick_edit($actions, $post) { // Replace `{$cap}` with your specific capability. if (CPT_SLUG === $post->post_type && current_user_can({$cap})) { unset($actions['inline hide-if-no-js']); } return $actions; } // Hook up. add_filter('post_row_actions', 'wpse288663_hide_quick_edit', 10, 2);