Crear permisos personalizados para tipos de usuario
Actualmente quiero que los escritores de mi sitio necesiten la aprobación de un administrador antes de publicar su contenido, pero que aún puedan realizar otras tareas como subir imágenes, agregar etiquetas, etc. Los niveles de permisos estáticos de WordPress son demasiado restrictivos o permiten que los escritores publiquen por sí mismos.
Sé que en Drupal hay una manera fácil de editar permisos para tipos de cuenta, pero me pregunto si hay alguna forma de lograr el mismo nivel de funcionalidad con WordPress.

Plugins que pueden hacer esto:
- WPFront User Role Editor -- versión gratuita y de pago, ambas hacen lo que necesitas
- User Role
- User Role and Capabilities
O puedes escribirlo en el functions.php de tu tema
- consulta Roles & Capabilities en el WP Codex para los detalles
- y lee esta guía fácil de entender sobre cómo añadir esas capacidades tú mismo
Personalmente, prefiero escribirlo en functions.php en lugar de instalar un plugin. Es más seguro y generalmente mantiene tu sitio funcionando más rápido.

Primero, elige un rol de WordPress que tendrá tu escritor: autor, colaborador, editor... o un rol personalizado.
Luego, personaliza el rol elegido con capacidades en el archivo functions.php de tu tema:
if ( ! function_exists( 'writer_set_roles' ) ):
function writer_set_roles()
{
global $wp_roles;
// edición de entradas/páginas
$wp_roles->add_cap('author','edit_others_pages');
$wp_roles->add_cap('author','edit_published_pages');
$wp_roles->add_cap('author','edit_private_pages');
$wp_roles->add_cap('author','publish_pages');
$wp_roles->add_cap('author','delete_pages');
$wp_roles->add_cap('author','delete_others_pages');
$wp_roles->add_cap('author','delete_others_posts');
$wp_roles->add_cap('author','delete_published_pages');
$wp_roles->add_cap('author','manage_categories');
// apariencia
$wp_roles->add_cap('author','edit_themes');
$wp_roles->add_cap('author','edit_theme_options');
$wp_roles->add_cap('author','manage_widgets');
$wp_roles->add_cap('author','edit_widgets');
// ejemplo para capacidades de plugins
$wp_roles->add_cap('author','NextGEN Gallery overview');
$wp_roles->add_cap('author','NextGEN Use TinyMCE');
$wp_roles->add_cap('author','NextGEN Upload images');
$wp_roles->add_cap('author','NextGEN Manage gallery');
$wp_roles->add_cap('author','NextGEN Manage others gallery');
}
endif;
add_action( 'after_setup_theme', 'writer_set_roles' );
Puedes encontrar todas las capacidades en este archivo: https://github.com/WordPress/WordPress/blob/master/wp-admin/includes/schema.php
O en la documentación: https://codex.wordpress.org/Roles_and_Capabilities
