Есть ли способ создать черновик редакции опубликованной страницы или записи? Какие обходные пути вы использовали?

12 нояб. 2010 г., 20:01:03
Просмотры: 47K
Голосов: 42

Допустим, я уже опубликовал страницу или запись. Теперь я хочу внести изменения, но хочу, чтобы коллега проверил их перед публикацией. Есть ли способ сделать это?

Редактирование: Я понимаю, что в настоящее время это невозможно как таковое, и меня интересуют креативные обходные пути.

На сайте, над которым я сейчас работаю, у меня также есть отдельный защищенный паролем 'staging' сайт для создания черновиков крупных изменений/дополнений контента, и после одобрения я копирую и вставляю их на действующий сайт. Интересно, использовал ли кто-нибудь подобный метод, но, возможно, автоматизировал 'перенос' на действующий сайт?

Я знаю об этом вопросе: Синхронизация базы данных между dev/staging и production, но он больше касается полной синхронизации всех баз данных, а не отдельных страниц или записей.

Сейчас предлагаю вознаграждение, чтобы попытаться найти дополнительные идеи для обходных путей.

4
Комментарии

Если кто-то может ответить на этот вопрос, то, вероятно, можно ответить и на старый связанный вопрос.

Jan Fabry Jan Fabry
12 нояб. 2010 г. 20:39:21

https://wordpress.org/plugins/revisionize/, кажется, делает то, что вам нужно. Удобный плагин.

Rod Salm Rod Salm
24 окт. 2018 г. 21:01:33

Начиная с 2019 года, обратите внимание на https://wordpress.org/plugins/revision-manager-tmc/. Это более новый вариант, но с более полным функционалом и лучше поддерживается.

Timofey Drozhzhin Timofey Drozhzhin
2 апр. 2019 г. 03:06:50

Я создал небольшой плагин для этого. Посмотрите. Может быть полезным: https://github.com/malithmcr/wp-draft-published

Malith Malith
2 авг. 2019 г. 18:59:52
Все ответы на вопрос 13
2
20

Должна быть возможность добавить кнопку Сохранить как изменённую копию в блоке публикации. Для этого нужно подключиться к хуку content_save_pre, затем скопировать содержимое и все метаданные в новую запись со статусом черновика. После проверки записи необходимо объединить обратно.

Я ещё не реализовал это, но такая функциональность действительно необходима.

12 нояб. 2010 г. 22:19:23
Комментарии

Мне нравится эта простая идея. API нужна только функция Copy Post Revision, которая сможет скопировать полную ревизию, включая метаданные, в новый (еще не созданный) или существующий пост. После этого черновик копии поста можно будет позже скопировать в оригинальный пост.

hakre hakre
13 нояб. 2010 г. 00:56:50

@toscho Я просто хотел узнать, остаётся ли это по-прежнему лучшим способом решения проблемы? Может, у кого-то есть пример кода или что-то более конкретное? Спасибо.

dashaluna dashaluna
22 нояб. 2011 г. 15:38:42
5

http://wordpress.org/extend/plugins/revisionary/

Этот плагин сделает то, что вам нужно. Он создает роль Рецензента (Revisor), которая находится где-то между Ролью Участника (Contributor) и Редактора (Editor). Пользовательский интерфейс можно улучшить, а внутренний код вынужден обходить множество недостающих функций WordPress, но да, он решает вашу проблему: он позволит вам сохранять черновик (фактически 'ожидающую' 'ревизию').

Обновление 2018: Revisionary, похоже, прекратил разработку около 3 лет назад. Однако, ознакомьтесь с ответом Тессы о Revisionize (https://wordpress.org/plugins/revisionize). Revisionize выглядит как лучшее решение.

Обновление 2019: Revisionary теперь принадлежит и активно разрабатывается PublishPress. Оригинальный автор также сотрудничает с ними для его поддержки.

27 янв. 2011 г. 01:57:39
Комментарии

Я только что протестировал этот плагин на только что обновленной версии 3.1.2. Процесс применения ожидающей ревизии кажется сломанным. Учитывая скудность документации, неясно, сломано ли это в 3.1.2, или предполагаемый UX заключается в том, что утверждающая сторона должна вручную копировать-вставлять ревизию в опубликованную запись. В любом случае, я не буду выпускать это для своих пользователей.

marfarma marfarma
4 июн. 2011 г. 02:37:38

Интерфейс довольно странный, но это потому, что нет реального способа правильно интегрировать его в WP, насколько я могу судить. В WP просто не хватает хуков для этого. Когда я тестировал, он все же работал... где-то есть кнопка или ссылка, которая 'восстанавливает' ревизию. Вам не должно быть необходимости что-то копировать-вставлять. С тех пор я перешел на то, чтобы пользователь просто отправлял редактору запрос на ревизию по электронной почте, именно потому что мне не нравится интерфейс.

WraithKenny WraithKenny
16 июн. 2011 г. 01:24:24

Согласен, этот плагин часто не работает у меня и ужасно неудобен в использовании.

James James
12 февр. 2015 г. 01:46:55

Я не использовал это 3,5 года; не думаю, что это всё ещё работает. Должен быть новый/лучший способ сделать это, так как ядро WordPress значительно улучшилось с момента публикации.

WraithKenny WraithKenny
17 февр. 2015 г. 18:37:18

Похоже, работает на сегодняшний день

John John
16 окт. 2015 г. 19:28:45
2

Привет @e100;

Если тебя интересует индивидуальное решение в виде плагина, я могу предложить несколько вариантов.

  1. Процесс, похожий на то, что @toscho назвал "Сохранить как изменённую копию", но с некоторыми отличиями. Плагин может блокировать редактирование опубликованных записей, но позволять создавать производные записи с новым статусом, например "Черновик обновления", которые будут связаны с оригинальной записью через произвольное поле. Эти производные записи можно редактировать, проверять и т.д., но вместо возможности публикации будет вариант заменить оригинальную запись обновлённой версией.

  2. Другой вариант — использовать встроенную систему ревизий, хотя мне нужно будет разобраться, как отображать в браузере версию, которая не является последней; возможно, сохранять содержимое в произвольном поле и позволять продолжать работу над ним.

  3. Третий вариант — настроить второй сайт на WordPress в качестве песочницы для редактирования, использовать веб-сервисы для получения записей, позволять редактировать их удалённо, а затем, когда они будут готовы, отправлять обратно на основной сайт.

  4. Похожий на третий вариант — настроить песочницу для редактирования с помощью мультисайта WordPress и создать непубличные блоги для каждого автора в качестве их личной песочницы.

Повторюсь, все эти варианты потребуют разработки кастомного плагина.

Если ты ищешь готовые плагины, можешь взглянуть на эти, хотя у меня пока нет конкретного опыта с ними, так что я не знаю, подойдут ли они под твои нужды:

  • Assignment Desk — инструмент для редакторов новостных организаций, использующих WordPress в качестве CMS. Цель плагина — упростить и сделать более эффективным взаимодействие с сообществом в процессе создания новостей.

  • Edit Flow — предлагает набор функций для переопределения редакционного рабочего процесса в WordPress.

  • Peter's Post Notes — добавляет заметки в боковой панели экранов редактирования записей и страниц в WordPress 2.8 и выше. При использовании с Peter's Collaboration E-mails 1.2 и выше заметки отправляются вместе с письмами в рабочем процессе. Также есть система общих и приватных заметок на дашборде.

22 нояб. 2010 г. 13:09:32
Комментарии

твое первое предложение звучит как очень крутое решение! О, и с Днем Благодарения, Майк, учитывая, что ты ВСЕГДА тот, кто дает отличные советы/решения всем нам!

NetConstructor.com NetConstructor.com
29 нояб. 2010 г. 20:02:32

Все эти предложения касаются плагинов, которые работают с НЕопубликованными записями. То, чего не хватает WordPress (в отличие от всех других CMS) — это возможности сохранять черновики в процессе редактирования уже опубликованных записей.

James James
12 февр. 2015 г. 01:48:31
3

Это довольно старый вопрос, и при просмотре некоторых упомянутых здесь плагинов я заметил, что многие из них больше не поддерживаются или не совсем то, что я искал.

В итоге я нашел плагин под названием Revisionize, который мне понравился. Хотя его репутация и популярность пока невысоки из-за относительной новизны, он мне приглянулся.

Преимущества:

  1. Удобный интерфейс в WordPress, кнопки легко найти, есть предупреждения и пояснения о действиях при их нажатии.
  2. Имеет 5-звездочный 4.9-звездочный рейтинг
  3. По-прежнему поддерживается разработчиком
  4. Совместим с плагином Advanced Custom Fields
  5. Совместим с плагином Public Post Preview

Недостатки:

  1. Всего 300+ 4,000+ активных установок
  2. Всего 4 отзыва 21 отзыв
  3. Нет поддержки Gutenberg

Списки обновлены 15 августа 2019 года. Несмотря на то, что это отличный плагин, если вы используете редактор блоков Gutenberg, он может вам не подойти.

24 апр. 2017 г. 18:25:17
Комментарии

Привет, я автор плагина Revisionize. Он прошел долгий путь — скоро выйдет версия 2.1 с улучшенной совместимостью для мультисайтов/сетей. В последней версии есть базовая панель настроек, а также несколько платных дополнений на https://revisionize.pro, которые позволяют участникам с ролью "Участник" (Contributors) создавать ревизии существующего контента и отправлять изменения на проверку. Сейчас у плагина более 1000 активных установок и 11 отзывов с 5 звездами.

Jamie Chong Jamie Chong
7 мар. 2018 г. 08:43:34

Да, у вас уже 18 отзывов с 5 звездами! Я действительно считаю, что этот плагин (и Revisionize) сейчас должен быть принятым ответом.

WraithKenny WraithKenny
4 окт. 2018 г. 19:23:05

В Revisionize произошли значительные улучшения. Спасибо @JamieChong

Timofey Drozhzhin Timofey Drozhzhin
4 сент. 2019 г. 21:54:35
4

К сожалению, в данный момент это невозможно. Если страница/запись уже опубликована, единственный вариант — создать новую страницу/запись для внесения правок и опубликовать её приватно, чтобы коллега мог проверить изменения. Затем заменить содержимое основной страницы/записи на обновлённую версию.

Для информации: Работа с черновиками уже опубликованного контента — это нестандартный рабочий процесс для большинства пользователей WordPress. За последний месяц я слышал как минимум о трёх различных подходах к этому вопросу... Так как единого стандарта для подачи правок в уже опубликованный контент не существует, шансы на то, что такая функция появится в WordPress, весьма малы.

12 нояб. 2010 г. 20:40:49
Комментарии

Хм, мне действительно кажется странным, что такой рабочий процесс не пользуется большим спросом, особенно учитывая, что WordPress все чаще продвигают как полнофункциональную CMS с пользовательскими типами контента и т.д.

e100 e100
13 нояб. 2010 г. 15:14:32

Проблема в том, что "такой рабочий процесс" определяется по-разному множеством людей. Если бы был стандарт, его было бы легко внедрить. Без стандарта кастомизация WP под один рабочий процесс отталкивает других. В текущей ситуации проще позволить разработчикам создавать индивидуальные решения для конкретных случаев.

EAMann EAMann
14 нояб. 2010 г. 02:31:09

Мне было бы очень интересно услышать эти три разных способа, которыми люди хотят управлять рабочим процессом.

MikeSchinkel MikeSchinkel
22 нояб. 2010 г. 12:52:06

Две функции, которые я могу вспомнить конкретно: 1) На основе ролей: Участники могут редактировать содержимое записи и нажимать "отправить на рецензирование", изменения должны быть проверены перед публикацией. 2) Раздельные ревизии: Пользователи могут выбрать любую ревизию записи и автоматически скопировать её в новую запись без отката существующей версии.

EAMann EAMann
22 нояб. 2010 г. 18:00:55
0

возможно простое решение: плагин http://wordpress.org/extend/plugins/duplicate-post/ для копирования записей

28 нояб. 2010 г. 12:04:29
2

Есть плагин под названием Live Drafts, который, кажется, работает довольно хорошо?

http://wordpress.org/extend/plugins/live-drafts/

9 февр. 2012 г. 18:19:32
Комментарии

4 года без обновлений

User User
13 июн. 2019 г. 02:14:19

Если вы всё ещё ищете решение, посмотрите это: https://github.com/malithmcr/wp-draft-published

Malith Malith
2 авг. 2019 г. 19:00:37
1

Хотя это, вероятно, не решит вашу конкретную проблему, я рекомендую вам взглянуть на плагин "Edit Flow" на wordpress.org. Это очень удобный плагин, который может оказаться полезным для вас.

29 нояб. 2010 г. 19:58:05
Комментарии

Нет. Editflow позволяет настраивать только несколько статусов для НЕопубликованных записей. А нужно иметь возможность сохранять черновики обновлений для уже опубликованных записей. Это одно из самых поразительных упущений в WordPress.

James James
12 февр. 2015 г. 01:45:40
1

Теперь для этого существует очень удобное решение в виде плагина Drafts of Post Revisions.

Пользователи могут получить разрешение на создание черновика ревизии опубликованной записи (или пользовательского типа записи), который создается как дочерняя копия записи.

Черновики можно сравнивать с их опубликованным родителем с помощью функции сравнения ревизий.

При публикации черновика ревизии все изменения интегрируются обратно в родительскую запись, а черновик удаляется. Также можно поддерживать несколько черновиков одновременно.

Рекомендую этот плагин всем - он становится стандартным инструментом для сайтов на WordPress. Однако я подозреваю, что в ближайшем будущем подобный функционал может быть разработан в ядре WordPress.

16 мар. 2013 г. 09:54:32
Комментарии

5 лет без обновлений

User User
13 июн. 2019 г. 02:14:05
0

Нашел этот ответ здесь, который сработал для меня. Я немного изменил его, так как использую пользовательские роли.

function published_to_pending( $post_id ) {
    global $post;
    if ( ! is_object( $post ) ) {
        return;
    }

    if ( ! current_user_can( 'publish_posts' ) && $post->post_status == 'publish' ) {
        // остановить рекурсивный вызов
        remove_action( 'save_post', 'published_to_pending' );

        // обновить запись, что снова вызывает save_post
        wp_update_post( array( 'ID' => $post_id, 'post_status' => 'pending' ) );

        // снова подключить эту функцию
        add_action( 'save_post', 'published_to_pending' );
    }
} 

add_action( 'save_post', 'published_to_pending' );
7 окт. 2016 г. 23:33:05
2

Привет @e100 :)

Я думаю, что умным решением будет использовать существующий бесплатный плагин. Он делает всё, о чём ты написал. Просто скачай его с WordPress.org: https://wordpress.org/plugins/revision-manager-tmc/
Этот плагин очень часто и регулярно обновляется

Revision Manager TMC отлично работает вместе со вторым бесплатным плагином для редактирования возможностей пользовательских ролей - User Role Editor https://wordpress.org/plugins/user-role-editor/

30 окт. 2018 г. 20:01:55
Комментарии

На 2019 год это самое полное решение. Оно похоже на Revisionize, но более интуитивное и завершённое. 1) Редакции привязаны к оригинальным записям; 2) Позволяет назначить редакторам "Роль участника", ограничивая их доступ к исходной записи; 3) Редакции действительно выглядят как редакции — скрывают параметры публикации и т.д.

Timofey Drozhzhin Timofey Drozhzhin
2 апр. 2019 г. 02:52:52

И поддержка ACF.

User User
13 июн. 2019 г. 02:10:03
0

Теперь в плагине (ранее Yoast) Duplicate Post появилась новая функция "Переписать и переопубликовать". Она позволяет сохранять ваши правки как черновик и планировать повторную публикацию, объединяя изменения с оригиналом.

Подробнее можно узнать здесь: https://yoast.com/help/how-to-use-the-rewrite-republish-feature-in-yoast-duplicate-post/

5 янв. 2022 г. 00:42:36
0

Скорее всего, я в конечном итоге воспользуюсь одним из плагинов, упомянутых в других ответах, но когда мне понадобилась эта функциональность и у меня не было времени искать плагины, я просто убеждался, что ревизии работают, сохранял изменения и сразу же откатывал их.

Теперь мой "черновик" находится в системе ревизий.

Не лучший вариант для рабочей системы, но вполне приемлемо для разработки, пока вы не решите, какой плагин использовать.

15 сент. 2016 г. 04:36:45