¿Cómo puedo mantener controlado el contenido de la versión de mis páginas?

13

Tenemos un sitio web basado en WordPress que proporciona documentación a nuestra API REST. Como nuestra API cambia constantemente, también lo hace la documentación. Sin embargo, nos gustaría mantener la versión de la documentación controlada para que pueda compararse con las confirmaciones de API. ¿Hay alguna manera de que las páginas de WordPress obtengan su contenido de un repositorio remoto (GitHub, por ejemplo)? ¿O hay una manera de enviar contenido a WordPress desde algún repositorio?

Elliot Cameron
fuente

Respuestas:

6

Ya tienes algo como esto incorporado: Revisiones .

// Define the nr of saved revisions in your wp-config.php
define( 'WP_POST_REVISIONS', 30 );

Simplemente puede tomarlos llamando get_posts()con un post_typede revision.

Para mostrar la diferencia entre dos revisiones simplemente use wp_text_diff().

// Example
$revisions = get_posts( array(
    'post_type' => 'revision'
) );
echo wp_text_diff(
     $revisions[0]['post_content']
    ,$revisions[1]['post_content']
    ,array(
         'title'       => 'Revision diff'
        ,'title_left'  => $revisions[0]['post_title']
        ,'title_right' => $revisions[1]['post_title']
     )
);

Para diferenciar, por ejemplo, la última versión con la versión anterior a la última, puede usar end( $revisions )['post_content']y diferenciar con $revisions[ count( $revisions ) -2 ]['post_content']. (Nota: -2como el índice de matrices comienza con cero y desea la versión anterior a la última).

emperador
fuente
Me gusta la idea de revisión. Y hay un complemento popular que WP Document Revisions puede ayudar a gestionar mejor las revisiones.
Anh Tran
@Rilwis debería ser una respuesta entonces :)
kaiser
5

Puede usar un gancho Git y publicar por XML-RPC en WordPress. Un gancho Git puede ser cualquier archivo ejecutable, incluso PHP.

Otra opción, en GitHub, es utilizar el enlace de correo electrónico: vaya a https://github.com/username/projectname/admin/hooks, seleccione Correo electrónico y envíe un correo electrónico al blog. Habilite la función Publicar por correo electrónico .

fuxia
fuente
2
+1 Ahora solo necesitamos una combinación de ambas funciones (construido como complemento sólido por el OP) :)
kaiser