¿Hay alguna manera de crear un borrador de revisión de una página o entrada publicada? ¿Qué soluciones alternativas has utilizado?
Digamos que ya he publicado una página o entrada. Ahora quiero hacer cambios, pero quiero que un colega los revise antes de que se publiquen. ¿Hay alguna manera de hacer esto?
Edición: Me doy cuenta de que esto no es posible actualmente como tal y me interesan las soluciones alternativas creativas.
En el sitio en el que estoy trabajando actualmente, también tengo un sitio de "staging" separado y protegido con contraseña para redactar cambios/adiciones importantes de contenido, y una vez aprobados, los copio y pego al sitio en vivo. Me pregunto si alguien ha usado un método similar, pero quizás automatizando el "push" al sitio en vivo.
Conozco esta pregunta: Sincronización de base de datos entre desarrollo/staging y producción, pero eso es más sobre la sincronización completa de bases de datos enteras en lugar de páginas o entradas individuales.
Ahora ofrezco una recompensa para intentar obtener ideas adicionales para soluciones alternativas.

Debería ser posible agregar un botón en la caja de Publicación con el texto Guardar como copia modificada. Tendrías que engancharte al filtro content_save_pre
y luego copiar el contenido y todos los metadatos en una nueva entrada con estado de borrador. Después de la revisión, las entradas tendrían que fusionarse nuevamente.
Aún no he implementado esto, pero es realmente necesario.

Me gusta esta idea sencilla. La API solo necesita una función Copy Post Revision
que pueda copiar una revisión completa incluyendo los metadatos a una publicación nueva (aún no creada) o a una existente. Una vez hecho esto, el borrador de la copia de la publicación puede copiarse luego a la publicación original.

http://wordpress.org/extend/plugins/revisionary/
Este plugin hará lo que necesitas. Crea un rol llamado Revisor que está en un punto intermedio entre Colaborador y Editor. La interfaz de usuario podría mejorarse y el código interno tuvo que sortear muchas limitaciones de WordPress, pero sí, resuelve tu problema: te permitirá guardar un borrador (en realidad una 'revisión' en estado 'pendiente').
Actualización 2018: Revisionary parece haber detenido su desarrollo hace unos 3 años. Sin embargo, revisa la respuesta de Tessa sobre Revisionize (https://wordpress.org/plugins/revisionize). Revisionize parece ser la mejor solución actualmente.
Actualización 2019: Revisionary ahora es propiedad de PublishPress y está en desarrollo activo. El autor original también está colaborando con ellos para darle soporte.

Acabo de probar este plugin en una instalación recién actualizada a la versión 3.1.2. El proceso de aplicar realmente la revisión pendiente parece estar roto. Dada la escasez de documentación, no está claro si está roto en la 3.1.2 o si la experiencia de usuario prevista es que la parte aprobadora deba copiar y pegar la revisión en el post publicado manualmente. En cualquier caso, no voy a implementar esto para mis usuarios.

La interfaz de usuario es bastante extraña, pero eso es porque no hay una forma real de integrarla correctamente en WP que yo sepa. WP simplemente carece de los hooks necesarios. Cuando lo probé, funcionó sin embargo... hay un botón o enlace en algún lugar que 'restaura' la revisión. No deberías tener que copiar-pegar nada. Desde entonces he cambiado a que el usuario simplemente envíe un correo al editor con la solicitud de revisión específicamente porque no me gusta la interfaz.

Estoy de acuerdo, este plugin a menudo no funciona para mí y es increíblemente horrible de usar.

No lo he usado en 3 años y medio; no asumiría que aún funcione. Debe haber una forma nueva/mejor de hacer esto, ya que las cosas en el núcleo de WP han mejorado mucho desde esta publicación.

Hola @e100;
Si estás interesado en una solución personalizada de plugin, puedo visualizar varios enfoques.
Un proceso similar al que @toscho describió como "Guardar como copia modificada" pero con algunas diferencias sutiles. El plugin podría bloquear la edición de posts publicados pero permitirte crear posts derivados con un nuevo estado como "Borrador actualizado" que podrían vincularse al post original mediante un campo personalizado. Estos posts derivados podrían luego editarse, revisarse, etc. pero en lugar de tener la opción de publicar, tendrías la opción de reemplazar el post original con tu actualización.
Otro proceso podría utilizar el sistema de revisiones incorporado, aunque tendría que investigar un poco para descubrir cómo servir al navegador una versión que no sea la más reciente; tal vez guardar el contenido en un campo personalizado y permitirte seguir trabajando en él.
Un tercer proceso podría ser configurar un segundo sitio WordPress como entorno de edición, usar servicios web para recuperar los posts, permitirte editarlos remotamente y luego, cuando estés listo para publicarlos, podrías enviarlos de vuelta al sitio principal.
Similar al punto #3, podrías configurar un entorno de edición usando una instalación WordPress Multisite y crear blogs no públicos para que cada autor tenga su propio entorno de edición.
Nuevamente, todas estas opciones requerirían desarrollo personalizado de plugins.
Si estás buscando plugins existentes, quizás quieras echar un vistazo a estos, aunque aún no tengo experiencia específica con ellos, por lo que no sé si alguno hará exactamente lo que necesitas:
Assignment Desk es una herramienta editorial para organizaciones de noticias que utilizan WordPress como su sistema de gestión de contenidos. El objetivo del plugin es hacer que la participación de la comunidad en el proceso de producción de noticias sea más fácil y eficiente.
Edit Flow ofrece un conjunto de funcionalidades para redefinir tu flujo de trabajo editorial dentro de WordPress.
Peter's Post Notes - Añade notas en las barras laterales de las pantallas "editar post" y "editar página" en WordPress 2.8 y versiones posteriores. Cuando se usa con Peter's Collaboration E-mails 1.2 y versiones posteriores, las notas se envían junto con los correos electrónicos en el flujo de trabajo de colaboración. También hay un sistema de notas generales y privadas en el panel de control.

¡tu primera sugerencia suena como una solución muy interesante! ¡Ah, y Feliz Día de Acción de Gracias Mike, viendo que SIEMPRE eres el que da excelentes consejos/soluciones a todos nosotros!

Esta es una pregunta bastante antigua, y al revisar algunos de los plugins mencionados aquí, noté que muchos no están mantenidos o no son exactamente lo que estaba buscando.
Al final, encontré uno que me gustó llamado Revisionize. Aunque su reputación y uso aún no son altos debido a que es bastante nuevo, me gusta.
Ventajas:
- Interfaz agradable dentro de WordPress, los botones son fáciles de encontrar y hay advertencias y notas cuando usas el plugin sobre lo que harán los botones al presionarlos.
- Tiene una calificación de
5 estrellas4.9 estrellas - Sigue siendo mantenido por su desarrollador
- Compatible con el plugin Advanced Custom Fields
- Compatible con el plugin Public Post Preview
Desventajas:
Solo 300+4,000+ instalaciones activasSolo 4 reseñas21 reseñas- No tiene soporte para Gutenberg
Listas actualizadas el 15 de agosto de 2019. Aunque sigue siendo un gran plugin, si estás usando el editor de bloques Gutenberg, puede que no sea para ti.

Hola, soy el autor del plugin Revisionize. Ha evolucionado mucho - estoy a punto de lanzar la versión 2.1 que añade mejor compatibilidad con multisitio/red. La última versión tiene un panel de configuración básico y ahora hay algunos complementos de pago disponibles en https://revisionize.pro que añaden soporte para que los colaboradores puedan revisar contenido existente y enviar cambios para revisión. Ahora hay más de 1000 instalaciones activas y 11 reseñas de 5 estrellas.

¡Sí, ya tienes 18 reseñas de 5 estrellas! Realmente creo que esta solución (y Revisionize) debería ser la respuesta aceptada hoy en día.

Por el momento no, lamentablemente. Si la página/entrada ya está publicada, tu única opción sería crear una página/entrada nueva para guardar tus ediciones y publicarla de forma privada para que tu compañero pueda revisar los cambios. Luego reemplaza el contenido de tu página/entrada en vivo con la versión revisada.
Solo para tu información: Hacer cambios en estado de borrador a contenido ya publicado no es un flujo de trabajo que muchos usuarios de WordPress utilicen. En el último mes he escuchado al menos 3 formas diferentes en que la gente quisiera que se hiciera... así que sin un estándar sobre cómo enviar revisiones a contenido ya publicado, las posibilidades de que esto llegue a ser una función de WordPress son escasas.

Hmmm, me parece extraño que este tipo de flujo de trabajo no tenga mayor demanda, especialmente cuando WordPress se promociona cada vez más como un CMS completo con tipos de contenido personalizados, etc.

El problema es que "este tipo de flujo de trabajo" es definido de manera diferente por muchas personas. Si hubiera un estándar, sería fácil incluirlo. Sin un estándar, personalizar WP para un flujo de trabajo aliena a los demás. Tal como está, es más fácil permitir que los desarrolladores creen soluciones personalizadas para situaciones específicas.

Estaría muy interesado en escuchar esas tres formas diferentes en que las personas quieren gestionar el flujo de trabajo.

Los dos que puedo recordar específicamente: 1) Basado en roles: Los colaboradores pueden editar el contenido de una publicación y hacer clic en "enviar revisión", que debe ser revisada antes de que los cambios se publiquen. 2) Revisiones divididas: Los usuarios pueden seleccionar una revisión de cualquier publicación y copiar automáticamente la revisión en una nueva publicación sin revertir la publicación existente.

tal vez una solución sencilla: el plugin http://wordpress.org/extend/plugins/duplicate-post/ para copiar un post

¿Hay un plugin llamado Live Drafts que parece funcionar bastante bien?

Si todavía estás buscando una solución, mira esto: https://github.com/malithmcr/wp-draft-published

Ahora existe una solución muy pulcra para esto con el plugin Drafts of Post Revisions.
Se puede permitir a los usuarios crear un borrador de revisión de una entrada publicada (o tipo de entrada personalizada) que se crea como una copia hija de la entrada.
Los borradores se pueden comparar con su entrada padre publicada mediante la función de comparación de revisiones.
Al publicar un borrador de revisión, los cambios se integran de vuelta al padre y el borrador se elimina. También se pueden mantener múltiples borradores.
Recomendaría este plugin a cualquiera - se está convirtiendo en un plugin estándar para sitios WordPress. Sin embargo, sospecho que podríamos ver este tipo de funcionalidad siendo desarrollada en el núcleo de WordPress en un futuro cercano.

Encontré esta respuesta aquí que funcionó para mí. La modifiqué ligeramente ya que estoy usando roles de usuario personalizados.
function published_to_pending( $post_id ) {
global $post;
if ( ! is_object( $post ) ) {
return;
}
if ( ! current_user_can( 'publish_posts' ) && $post->post_status == 'publish' ) {
// detener la llamada recursiva
remove_action( 'save_post', 'published_to_pending' );
// actualizar el post, lo cual llama a save_post nuevamente
wp_update_post( array( 'ID' => $post_id, 'post_status' => 'pending' ) );
// volver a enganchar esta función
add_action( 'save_post', 'published_to_pending' );
}
}
add_action( 'save_post', 'published_to_pending' );

Hola @e100 :)
Creo que una solución inteligente sería que uses un plugin gratuito existente. Hace todo lo que mencionaste. Solo descárgalo desde WordPress.org: https://wordpress.org/plugins/revision-manager-tmc/
Este plugin se actualiza con mucha frecuencia y regularidad
Revision Manager TMC funciona muy bien con el segundo plugin gratuito para editar las capacidades de los roles de usuario - User Role Editor https://wordpress.org/plugins/user-role-editor/

Hasta 2019, esta es la solución más completa. Es similar a Revisionize, pero más intuitiva y completa. 1) Las revisiones están vinculadas a las publicaciones originales; 2) Permite asignar a los editores un "Rol de Contribuidor", mientras los restringe de la publicación original; 3) Hace que las revisiones se sientan como tales, es decir, oculta las opciones de publicación, etc.

Ahora hay una nueva función en el plugin (ahora Yoast) Duplicate Post que te permite "Reescribir y republicar" una entrada. Esto te permite guardar tus ediciones como un borrador y programar la republicación fusionando las revisiones con el original.
Puedes encontrar más detalles aquí: https://yoast.com/help/how-to-use-the-rewrite-republish-feature-in-yoast-duplicate-post/

Probablemente termine usando uno de los plugins mencionados en otras respuestas, pero cuando necesité esta funcionalidad y no tuve tiempo para buscar plugins, lo que hice fue asegurarme de que las revisiones estuvieran activadas, guardar los cambios y revertirlos inmediatamente.
Así mi "borrador" quedó en el sistema de revisiones.
No es lo ideal para un sistema en producción, pero es suficiente para un entorno de desarrollo, hasta que decidas qué plugin usar.
