Bagaimana saya bisa menjaga konten halaman saya terkontrol?

13

Kami memiliki situs web berbasis WordPress yang menyediakan dokumentasi untuk REST API kami. Karena API kami terus berubah, begitu pula dokumentasinya. Namun, kami ingin tetap mengontrol versi dokumentasi agar dapat dicocokkan dengan komitmen API. Apakah ada cara agar halaman WordPress mendapatkan kontennya dari repositori jarak jauh (GitHub, misalnya)? Atau adakah cara untuk mendorong konten ke WordPress dari beberapa repositori?

Elliot Cameron
sumber

Jawaban:

6

Anda sudah mendapatkan yang seperti ini bawaannya: Revisi .

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

Anda hanya bisa ambil mereka dengan memanggil get_posts()dengan post_typedari revision.

Untuk menunjukkan perbedaan antara dua revisi cukup gunakan 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']
     )
);

Untuk melakukan diff misalnya versi terakhir dengan versi sebelum yang terakhir, Anda dapat menggunakan end( $revisions )['post_content']dan memperbaikinya $revisions[ count( $revisions ) -2 ]['post_content']. (Catatan: -2sebagai indeks array mulai dengan nol dan Anda menginginkan versi sebelum yang terakhir.).

kaisar
sumber
Saya suka ide Revisi. Dan ada plugin WP Revisi Dokumen yang populer dapat membantu mengelola revisi dengan lebih baik.
Anh Tran
@Rilwis Harus menjadi jawaban kalau begitu :)
kaiser
5

Anda bisa menggunakan kait Git dan memposting per XML-RPC ke WordPress. Git hook dapat berupa file apa pun yang dapat dieksekusi, termasuk PHP.

Opsi lain - di GitHub - adalah menggunakan kait email: Pergi ke https://github.com/username/projectname/admin/hooks, pilih Email dan kirim email ke blog. Aktifkan fitur Post per email .

fuxia
sumber
2
+1 Sekarang kita hanya perlu kombinasi kedua fitur (dibangun sebagai plugin solid oleh OP) :)
kaiser