Obrigado, Renato. Parti para outra abordagem. Primeiro removi o acesso aos não-administradores aos custom fields “normais” com:
// metaboxes que colab não devem usar
if (!current_user_can('update_core')) {
function remove_post_custom_fields() {
remove_meta_box('postcustom', 'post' , 'normal');
}
add_action( 'admin_menu' , 'remove_post_custom_fields' );
}
Depois usei isso http://www.farinspace.com/wpalchemy-metabox/ para criar um metabox com novos custom fields específicos para o que eu preciso.
Mesmo assim, vou testar o que você postou, posso precisar em outro projeto.