Làm cách nào để giữ cho nội dung của phiên bản trang của tôi được kiểm soát?


13

Chúng tôi có một trang web dựa trên WordPress cung cấp tài liệu cho API REST của chúng tôi. Vì API của chúng tôi liên tục thay đổi, tài liệu cũng vậy. Tuy nhiên, chúng tôi muốn giữ phiên bản tài liệu được kiểm soát để có thể khớp với phiên bản API. Có cách nào để các trang WordPress lấy nội dung của chúng từ kho lưu trữ từ xa (chẳng hạn như GitHub) không? Hoặc có cách nào để đẩy nội dung lên WordPress từ một số kho lưu trữ?

Câu trả lời:


6

Bạn đã có một cái gì đó như thế này được xây dựng trong: Sửa đổi .

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

Bạn chỉ có thể lấy chúng bằng cách gọi get_posts()với một post_typesố revision.

Để hiển thị sự khác biệt giữa hai phiên bản chỉ cần sử dụng 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']
     )
);

Để tìm khác biệt, ví dụ như phiên bản cuối cùng với phiên bản trước phiên bản trước, bạn có thể sử dụng end( $revisions )['post_content']và khác với phiên bản đó $revisions[ count( $revisions ) -2 ]['post_content']. (Lưu ý: -2vì chỉ số mảng bắt đầu bằng 0 và bạn muốn phiên bản trước cuối cùng.).


Tôi thích ý tưởng của Sửa đổi. Và có một plugin phổ biến WP Document Revevision có thể giúp quản lý các phiên bản tốt hơn.
Anh Trần

@Rilwis Nên là một câu trả lời sau đó :)
kaiser

5

Bạn có thể sử dụng hook Git và đăng mỗi XML-RPC lên WordPress. Một hook Git có thể là bất kỳ tệp thực thi nào, thậm chí là PHP.

Một tùy chọn khác - trên GitHub - là sử dụng móc email: Truy cập https://github.com/username/projectname/admin/hooks, chọn Email và gửi email đến blog. Kích hoạt tính năng Đăng mỗi email .


2
+1 Bây giờ chúng tôi chỉ cần kết hợp cả hai tính năng (được xây dựng dưới dạng plugin vững chắc của OP) :)
kaiser
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.