Como posso manter controlado o conteúdo da versão das minhas páginas?

13

Temos um site baseado em WordPress que fornece documentação para nossa API REST. Como nossa API está constantemente mudando, a documentação também. No entanto, gostaríamos de manter a versão da documentação controlada para que ela possa ser comparada com as confirmações da API. Existe uma maneira de as páginas do WordPress obterem seu conteúdo de um repositório remoto (GitHub, por exemplo)? Ou existe uma maneira de enviar conteúdo para WordPress a partir de algum repositório?

Elliot Cameron
fonte

Respostas:

6

Você já incorporou algo assim: Revisões .

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

Você pode simplesmente pegá-los ligando get_posts()com um post_typede revision.

Para mostrar a diferença entre duas revisões, basta usar 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 exemplo, a última versão com a versão anterior à última, você pode usá end( $revisions )['post_content']-lo e diferenciá-lo $revisions[ count( $revisions ) -2 ]['post_content']. (Nota: -2como o índice de matrizes começa com zero e você deseja a versão anterior à última.).

kaiser
fonte
Eu gosto da ideia de revisão. E há um popular plugin WP Document Revisions pode ajudar a gerenciar melhor as revisões.
Anh Tran
@Rilwis Deve ser uma resposta então :)
kaiser
5

Você pode usar um gancho Git e postar por XML-RPC no WordPress. Um gancho Git pode ser qualquer arquivo executável, mesmo PHP.

Outra opção - no GitHub - é usar o gancho de email: Vá para https://github.com/username/projectname/admin/hooks, selecione Email e envie um email para o blog. Ative o recurso Publicar por email .

fuxia
fonte
2
+1 Agora só precisamos de uma combinação de ambos os recursos (construído como plug-in sólida pelo OP) :)
kaiser