Per uno dei siti a cui ho lavorato, mi sono trovata di fronte a un problema: avendo dato accesso, tramite registrazione, a un ruolo che può solo inserire post e metterli in attesa di revisione, una volta che il post viene pubblicato da un amministratore l’utente può tranquillamente modificare il post pubblicato.
Volendo limitare questa funzionalità, ho trovato il seguente trucco:

add_filter('wp_insert_post_data' , 'always_pending' , '99', 2);

function always_pending( $data , $postarr ) { 
    if ( ! current_user_can( 'moderate_comments' ) ) {
           $data['post_status'] = 'pending';     
    }
    return $data;  
}  

Ogni volta che l’utente modifica il post, quest’ultimo torna nello stato di attesa di revisione (pending), e un amministratore lo dovrà nuovamente pubblicare.