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

38

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

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

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

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

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

e100
источник
3
Если кто-то может ответить на этот вопрос, возможно, также ответ на более старый связанный вопрос .
Ян Фабри
wordpress.org/plugins/revisionize, кажется, делает то, что вам нужно. Удобный плагин.
Род Салм
По состоянию на 2019 год загляните в wordpress.org/plugins/revision-manager-tmc . Это более новый плеер, но более функциональный и улучшенный.
timofey.com
1
Я создал небольшой плагин для этого. Проверь это. Может быть полезно: github.com/malithmcr/wp-draft-published
Малит

Ответы:

21

Должна быть возможность добавить кнопку в поле «Публикация» « Сохранить как измененную копию» . content_save_preЗатем вам нужно подключиться и скопировать содержимое и все метаданные в новый пост с черновым статусом. После просмотра посты должны быть объединены.

Я этого еще не сделал, но это действительно необходимо.

Фуксия
источник
2
Мне нравится эта простая идея. API требуется только Copy Post Revisionфункция, которая может копировать полную ревизию, в том числе. метаданные нового (еще не созданного) или существующего сообщения. После этого черновик почтовой копии может быть скопирован в исходное сообщение позже.
Хакре
@ toscho Мне просто интересно, все-таки это лучший способ решить проблему? Может быть, у кого-то есть пример кода или что-то более конкретное? Спасибо
dashaluna
10

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

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

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

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

WraithKenny
источник
Я только что протестировал этот плагин на обновленной версии 3.1.2. Процесс фактического применения ожидающего пересмотра кажется нарушенным. Учитывая скудность документации, неясно, сломана ли она в 3.1.2, или если предполагаемый UX состоит в том, что утверждающая сторона должна скопировать и вставить редакцию в опубликованное сообщение вручную. В любом случае, я не распространяю это своим пользователям.
Марфарма
Пользовательский интерфейс довольно дурацкий, но это потому, что, насколько я могу судить, нет реального способа правильно интегрировать его в WP. WP просто не хватает крючков для этого. Когда я тестировал его, он работал, однако ... где-то есть кнопка или ссылка, которая "восстанавливает" ревизию. Вам не нужно ничего копировать и вставлять. С тех пор я перешел к тому, чтобы пользователь просто отправлял электронное письмо редактору с запросом на ревизию, потому что мне не нравится пользовательский интерфейс.
WraithKenny
Согласитесь, этот плагин часто ломается для меня и невероятно ужасен в использовании.
Джеймс
Я не использовал его в течение 3,5 лет; Я не предполагал, что это все еще будет работать. Должен быть новый / лучший способ сделать это, так как вещи в ядре WP значительно улучшились с этого поста.
WraithKenny
1
Кажется, работает с сегодняшнего дня
Джон
6

Привет @ е100 ;

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

  1. Процесс, подобный тому, что @toscho описал как «Сохранить как измененную копию», но с некоторыми тонкими различиями. Плагин может блокировать редактирование опубликованных постов, но позволяет создавать производные посты с новым статусом, таким как «Обновленный черновик», который можно привязать к исходному посту через настраиваемое поле. Эти производные посты можно затем редактировать, просматривать и т. Д., Но вместо возможности публикации у вас будет возможность заменить исходное сообщение обновлением.

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

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

  4. Как и в # 3, вы можете настроить «песочницу» для редактирования, используя установку WordPress Multisite, и создать непубличные блоги для каждого автора, которые будут иметь свою собственную «песочницу» для редактирования.

Опять же, все эти опции потребуют разработки пользовательских плагинов.

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

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

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

  • Заметки Питера: добавляйте заметки на боковые панели экранов «Редактировать пост» и «Редактировать страницу» в WordPress 2.8 и выше. При использовании с электронными письмами Питера Collaboration 1.2 и выше заметки отправляются вместе с электронными письмами в рабочем процессе совместной работы. На приборной панели также есть система общих и личных заметок.

MikeSchinkel
источник
Ваше первое предложение звучит как очень крутое решение! О, и с Днем Благодарения Майк, видя, что ваш ВСЕГДА дает отличные советы / решения для всех нас!
NetConstructor.com
1
Все эти предложения предназначены для плагинов, которые обрабатывают неопубликованные сообщения. То, чего нет в WordPress (что есть во всех других CMS), - это способ сохранить незавершенные редакции уже опубликованных постов.
Джеймс
4

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

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

Плюсы:

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

Минусы:

  1. Только 300+ 4000+ активных установок
  2. Только 4 отзыва 21 отзыв
  3. Нет поддержки Гутенберга

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

Тесса
источник
1
Эй, я автор плагина Revisionize. Прошел долгий путь - собирается запустить версию 2.1, которая добавляет улучшенную совместимость с несколькими сайтами / сетями. Последняя версия имеет панель основных настроек, и теперь есть несколько доступных платных дополнений в форме revisionize.pro, в которой добавлена ​​поддержка участников для пересмотра существующего контента и отправки изменений на рассмотрение. Сейчас более 1000 активных установок и 11 5-звездочных обзоров.
Джейми Чонг
Да, вы до 18 5-звездочных отзывов! Я действительно считаю, что это (и Revisionize) должны быть принятым ответом в настоящее время.
WraithKenny
С Revisionize произошло значительное улучшение. Спасибо @JamieChong
timofey.com
3

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

Справка: внесение изменений в статус черновика в уже опубликованный контент - это рабочий процесс, который не используется многими пользователями WordPress. Я слышал, по крайней мере, о 3 разных способах, которыми люди хотят, чтобы это было сделано в прошлом месяце, тоже ... так что без стандартного рабочего процесса «вот как ты отправляешь ревизии в уже опубликованный контент», шансы на то, что это когда-либо станет особенностью WordPress, невелики.

EAMann
источник
2
Хм, мне кажется странным, что этот вид рабочего процесса не пользуется большим спросом, тем более что WP все чаще выдвигается как полнофункциональная CMS с пользовательскими типами контента и т. Д.
e100
1
Проблема в том, что «этот вид рабочего процесса» определяется по-разному многими людьми. Если бы существовал стандарт, его было бы легко включить. Без стандарта настройка WP для одного рабочего процесса отталкивает другие. В настоящее время разработчикам проще создавать собственные решения для конкретных ситуаций.
EAMann
Мне было бы очень интересно услышать эти три разных способа управления рабочим процессом.
MikeSchinkel
Два из них я могу вспомнить конкретно: 1) На основе ролей : авторы могут редактировать содержимое сообщения и нажимать кнопку «отправить ревизию», которую необходимо просмотреть, прежде чем изменения вступят в силу. 2) Разделить ревизии : пользователи могут выбрать рецензию любого поста и автоматически скопировать ревизию в новый пост, не откатывая существующий пост обратно.
EAMann
1

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

NetConstructor.com
источник
Нет. Editflow позволяет настроить несколько статусов неопубликованных постов. Необходим способ сохранить черновики текущих обновлений в уже опубликованных публикациях. это одно из самых потрясающих упущений в WordPress.
Джеймс
1

Теперь есть очень аккуратное решение для этого с плагином « Черновики ревизий» .

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

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

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

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

Xave
источник
5 лет с момента обновления
1

Привет @ е100 :)

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

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

Yaworek
источник
1
По состоянию на 2019 год это наиболее полное решение. Это похоже на Revisionize, но более интуитивно понятное и более полное. 1) Изменения связаны с исходными сообщениями; 2) Позволяет назначать редакторам «Внесенную роль», при этом ограничивая их от исходного поста; 3) Это делает ревизии похожими на ревизии, то есть скрывает параметры публикации и т. Д.
timofey.com
И поддержка ACF.
0

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

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

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

TecBrat
источник
0

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

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

    if ( ! current_user_can( 'publish_posts' ) && $post->post_status == 'publish' ) {
        // stop recursion call
        remove_action( 'save_post', 'published_to_pending' );

        // update the post, which calls save_post again
        wp_update_post( array( 'ID' => $post_id, 'post_status' => 'pending' ) );

        // re-hook this function back
        add_action( 'save_post', 'published_to_pending' );
    }
} 

add_action( 'save_post', 'published_to_pending' );
tehlivi
источник