Как я могу контролировать содержимое своих страниц?

13

У нас есть веб-сайт на базе WordPress, который предоставляет документацию для нашего REST API. Поскольку наш API постоянно меняется, то же самое происходит и с документацией. Тем не менее, мы бы хотели контролировать версию документации, чтобы ее можно было сопоставить с фиксацией API. Есть ли способ, чтобы страницы WordPress получали свое содержимое из удаленного хранилища (например, GitHub)? Или есть способ отправить контент в WordPress из какого-либо хранилища?

Эллиот Кэмерон
источник

Ответы:

6

У вас уже есть что-то вроде этого: Ревизии .

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

Вы можете просто взять их, позвонив get_posts()с post_typeоф revision.

Чтобы показать разницу между двумя ревизиями, просто используйте 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']
     )
);

Для сравнения, например, последней версии с версией, предшествующей предыдущей, вы можете использовать ее end( $revisions )['post_content']и сравнить с ней $revisions[ count( $revisions ) -2 ]['post_content']. (Примечание: -2поскольку индекс массивов начинается с нуля, и вам нужна версия, предшествующая последней.).

кайзер
источник
Мне нравится идея пересмотра. И есть популярный плагин WP Document Revisions, который поможет лучше управлять ревизиями.
Ань Тран
@Rilwis Должен быть ответом тогда :)
kaiser
5

Вы можете использовать ловушку Git и публиковать по XML-RPC в WordPress. Хук Git может быть любым исполняемым файлом, даже PHP.

Другой вариант - на GitHub - использовать хук электронной почты: перейдите https://github.com/username/projectname/admin/hooks, выберите Email и отправьте электронное письмо в блог. Включите функцию отправки сообщений по электронной почте .

Фуксия
источник
2
+1 Теперь нам просто нужна комбинация обеих функций (собранных как опциональный плагин в ОП) :)
kaiser