Czy jest jakiś sposób na sporządzenie wersji opublikowanej strony lub postu? Jakie obejścia zastosowałeś?

38

Powiedzmy, że już opublikowałem stronę lub post. Chcę teraz wprowadzić zmiany, ale chcę, aby kolega sprawdził je przed uruchomieniem. Czy jest na to jakiś sposób?

Edycja: Zdaję sobie sprawę, że obecnie nie jest to możliwe i jestem zainteresowany kreatywnymi obejściami.

Na stronie, nad którą obecnie pracuję, mam również oddzielną, chronioną hasłem, stronę „przejściową”, służącą do opracowywania istotnych zmian / uzupełnień treści, a po zatwierdzeniu kopiuję i wklejam na aktywną stronę. Zastanawiam się, czy ktoś zastosował podobną metodę, ale może zautomatyzował „wypychanie” na działającą stronę?

Zdaję sobie sprawę z tego pytania: synchronizacja baz danych między projektowaniem / produkcją a produkcją , ale chodzi raczej o hurtową synchronizację całych baz danych, a nie poszczególnych stron lub postów.

Teraz oferuje nagrodę za wypróbowanie dodatkowych pomysłów na obejścia.

e100
źródło
3
Jeśli ktoś może odpowiedzieć na to pytanie, prawdopodobnie można również odpowiedzieć na starsze powiązane pytanie .
Jan Fabry,
wordpress.org/plugins/revisionize wydaje się robić to, czego potrzebujesz. Przydatna wtyczka.
Rod Salm
Od 2019 r. Zajrzyj do wordpress.org/plugins/revision-manager-tmc . Jest to nowszy odtwarzacz, ale więcej funkcji jest kompletnych i lepiej utrzymanych.
timofey.com
1
Stworzyłem do tego małą wtyczkę. Sprawdź to. Może być pomocny: github.com/malithmcr/wp-draft-published
Malith

Odpowiedzi:

21

Powinno być możliwe dodanie przycisku do pola Publikuj Zapisz jako zmienioną kopię . Musisz się content_save_prewtedy podłączyć i skopiować zawartość i wszystkie metadane do nowego postu ze statusem wersji roboczej. Po sprawdzeniu posty muszą zostać ponownie scalone.

Jeszcze tego nie zrobiłem, ale jest to naprawdę potrzebne.

fuxia
źródło
2
Podoba mi się ten prosty pomysł. Interfejs API potrzebuje tylko Copy Post Revisionfunkcji, która jest w stanie skopiować pełną wersję, w tym. metadane do nowego (jeszcze nie utworzonego) lub do istniejącego postu. Po wykonaniu tej kopii kopię posta można później skopiować do oryginalnego postu.
hakre
@toscho Zastanawiałem się, czy to nadal najlepszy sposób na rozwiązanie problemu? Może ktoś ma przykładowy kod lub coś bardziej konkretnego? Dzięki
dashaluna
10

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

Ta wtyczka zrobi co chcesz. Tworzy rolę Revisor, która jest jakby pomiędzy współautorem a edytorem. Interfejs użytkownika można ulepszyć, a wewnętrzny kod musiał obejść wiele brakujących funkcji WordPressa, ale tak, to rozwiązuje twój problem: Pozwoli ci zapisać wersję roboczą (w rzeczywistości „oczekującą” „wersję”).

Aktualizacja 2018 : Wydaje się, że wersja naprawcza przestała działać około 3 lata temu. Jednak zobacz odpowiedź Tessy na temat rewizji ( https://wordpress.org/plugins/revisionize ). Revisionize wygląda jak najlepsze rozwiązanie.

Aktualizacja 2019 : Wersja jest teraz własnością i jest aktywnie rozwijana przez PublishPress. Oryginalny autor również współpracuje z nimi, aby go wspierać.

WraithKenny
źródło
Właśnie przetestowałem tę wtyczkę w nowo zaktualizowanej instalacji 3.1.2. Proces faktycznego stosowania oczekującej zmiany wydaje się być zepsuty. Biorąc pod uwagę rzadkość dokumentacji, nie jest jasne, czy jest ona uszkodzona w 3.1.2, czy też zamierzonym UX jest to, że strona zatwierdzająca musi ręcznie skopiować poprawkę do opublikowanego postu. W każdym razie nie przekazuję tego moim użytkownikom.
marfarma
Interfejs użytkownika jest dość zwariowany, ale o ile wiem, nie ma prawdziwego sposobu na jego prawidłowe zintegrowanie z WP. WP po ​​prostu brakuje do tego haków. Kiedy go przetestowałem, zadziałało jednak ... gdzieś jest przycisk lub link, który „przywraca” wersję. Nie powinieneś kopiować i wklejać niczego. Od tego czasu przeszedłem do tego, że użytkownik po prostu wysyła do edytora e-maila z prośbą o zmianę, ponieważ nie podoba mi się interfejs użytkownika.
WraithKenny
Zgadzam się, ta wtyczka jest często dla mnie zepsuta i niesamowicie okropna w użyciu.
James
Nie używałem tego od 3 1/2 roku; Nie zakładałbym, że to nadal zadziała. Musi istnieć nowy / lepszy sposób, aby to zrobić, ponieważ rzeczy w rdzeniu WP znacznie się poprawiły od tego postu.
WraithKenny
1
Wydaje się, że działa na dzień dzisiejszy
Jan
6

Cześć @ e100 ;

Jeśli jesteś zainteresowany niestandardowym rozwiązaniem wtyczki , mogę wyobrazić sobie kilka podejść.

  1. Proces podobny do opisanego przez @toscho jako „Zapisz jako zmienioną kopię”, ale z pewnymi subtelnymi różnicami. Wtyczka może blokować edycję opublikowanych postów, ale umożliwia tworzenie postów pochodnych o nowym statusie, takich jak „Zaktualizowana wersja robocza”, które można powiązać z oryginalnym postem za pomocą niestandardowego pola. Te pochodne posty mogą być następnie edytowane, sprawdzane itp., Ale zamiast opcji publikowania, możesz zastąpić oryginalny wpis swoją aktualizacją.

  2. Inny proces mógłby wykorzystać wbudowany system weryfikacji, chociaż musiałbym przeprowadzić badania, aby dowiedzieć się, jak udostępnić przeglądarce wersję, która nie jest najnowsza; może zapisać treść jako pole niestandardowe i pozwolić ci kontynuować pracę nad nią.

  3. Trzecim procesem może być skonfigurowanie drugiej witryny WordPress jako piaskownicy do edycji , korzystania z usług internetowych w celu pobierania postów, umożliwienia ich edycji zdalnie, a następnie, gdy będziesz gotowy do opublikowania, możesz wrócić do strony głównej.

  4. Podobnie do # 3, możesz skonfigurować piaskownicę edycyjną za pomocą instalacji WordPress Multisite i tworzyć niepubliczne blogi dla każdego autora, który będzie miał swój własny piaskownik edycyjny.

Ponownie wszystkie te opcje wymagałyby opracowania niestandardowych wtyczek.

Jeśli szukasz istniejących wtyczek , zajrzyj do nich, ale nie mam jeszcze szczególnych doświadczeń z nimi, więc nie wiem, czy któreś z nich zrobi dokładnie to, czego potrzebujesz:

  • Assignment Desk to narzędzie redakcyjne dla organizacji prasowych wykorzystujących WordPress jako system zarządzania treścią. Celem wtyczki jest ułatwienie i zwiększenie zaangażowania społeczności w proces tworzenia wiadomości.

  • Edycja Flow oferuje pakiet funkcji, które na nowo definiują przepływ pracy redakcyjnej w WordPress.

  • Notatki Petera - dodawaj notatki do pasków bocznych ekranów „edytuj post” i „edytuj stronę” w WordPress 2.8 i nowszych. W przypadku korzystania z Peter's Collaboration E-mail 1.2 i nowszych notatki są wysyłane wraz z wiadomościami e-mail w przepływie pracy grupowej. Na pulpicie znajduje się także ogólny i prywatny system notatek.

MikeSchinkel
źródło
Twoja pierwsza sugestia brzmi jak bardzo fajne rozwiązanie! Aha i Szczęśliwego Święta Dziękczynienia Mike, widząc, że ZAWSZE to ta, która daje nam doskonałe porady / rozwiązania!
NetConstructor.com
1
Wszystkie te sugestie dotyczą wtyczek, które obsługiwały nieopublikowane posty. To, czego nie ma WordPress (jak wszystkie inne CMSy), to sposób na zapisanie wersji roboczych poprawek do już opublikowanych postów.
James
4

To naprawdę stare pytanie i patrząc na niektóre z wymienionych tutaj wtyczek zauważyłem, że wiele z nich nie jest utrzymywanych lub nie do końca to, czego szukałem.

W końcu znalazłem taki, który mi się podobał, o nazwie Revisionize . Choć jego reputacja i wykorzystanie jeszcze się nie skończyły, ponieważ jest raczej nowa, podoba mi się.

Plusy:

  1. Przyjemny interfejs użytkownika w WordPress, przyciski są łatwe do znalezienia, a podczas korzystania z wtyczki pojawiają się ostrzeżenia i uwagi dotyczące działania przycisków.
  2. Ma 5 gwiazdek 4,9 gwiazdki
  3. Nadal utrzymywane przez jego twórcę
  4. Kompatybilny z wtyczką Advanced Custom Fields
  5. Kompatybilny z wtyczką Public Post Preview

Cons:

  1. Tylko 300+ 4000+ aktywnych instalacji
  2. Tylko 4 recenzje 21 opinii
  3. Brak wsparcia Gutenberga

Zaktualizowano listy 15 sierpnia 2019 r . Chociaż nadal jest to świetna wtyczka, jeśli używasz edytora bloków Gutenberga, może nie być dla Ciebie.

Tessa
źródło
1
Hej, jestem autorem wtyczki Revisionize. Przeszła długą drogę - wkrótce uruchomi wersję 2.1, która dodaje ulepszoną kompatybilność z wieloma witrynami / siecią. Najnowsza wersja ma panel ustawień podstawowych, a teraz jest kilka płatnych dodatków dostępnych w revisionize.pro, które dodają wsparcie dla współpracowników w celu zmiany istniejącej zawartości i przesłania zmian do przeglądu. Obecnie jest ponad 1000 aktywnych instalacji i 11 5-gwiazdkowych recenzji.
Jamie Chong,
Tak, masz do 18 5-gwiazdkowych recenzji! Naprawdę uważam, że ta (i rewizja) powinna być akceptowaną odpowiedzią teraz.
WraithKenny
Znacząca poprawa nastąpiła dzięki Revisionize. Dziękuję @JamieChong
timofey.com
3

Niestety nie teraz. Jeśli strona / post jest już opublikowany, jedynym rozwiązaniem będzie utworzenie nowej strony / postu w celu przechowywania zmian i opublikowania go prywatnie , aby Twój kolega mógł sprawdzić zmiany. Następnie zamień zawartość swojej aktywnej strony / postu na poprawioną wersję.

Tylko do wiadomości: Wprowadzanie zmian statusu wersji roboczej już opublikowanych treści jest procesem pracy, który nie jest wykorzystywany przez wielu użytkowników WordPress. Słyszałem o co najmniej 3 różnych sposobach, w jakie ludzie chcą to robić w ciągu ostatniego miesiąca ... więc bez standardowego przepływu pracy polegającego na przesłaniu poprawek do już opublikowanych treści, szanse, że kiedykolwiek stanie się to funkcją WordPress, są niewielkie.

EAMann
źródło
2
Hmmm, wydaje mi się dziwne, że tego rodzaju przepływ pracy nie jest bardziej pożądany, zwłaszcza, że ​​WP jest coraz częściej wybierane jako w pełni funkcjonalny CMS z niestandardowymi typami treści itp.
e100
1
Problem polega na tym, że „tego rodzaju przepływ pracy” jest definiowany inaczej przez tak wiele różnych osób. Gdyby istniał standard, łatwo byłoby go włączyć. Bez standardu dostosowywanie WP dla jednego przepływu pracy alienuje pozostałe. W tej chwili programiści mogą łatwiej tworzyć niestandardowe rozwiązania dla konkretnych sytuacji.
EAMann
Byłbym bardzo zainteresowany usłyszeniem tych trzech różnych sposobów zarządzania przepływem pracy przez ludzi.
MikeSchinkel,
Dwa, które pamiętam w szczególności: 1) Oparte na rolach : Współtwórcy mogą edytować treść postu i kliknąć „prześlij poprawkę”, którą należy przejrzeć przed wprowadzeniem zmian. 2) Podziel wersje: Użytkownicy mogą wybrać recenzję dowolnego postu i automatycznie skopiować poprawkę do nowego postu bez wycofywania istniejącego postu.
EAMann
1

Chociaż prawdopodobnie nie rozwiąże to konkretnego problemu, sugeruję zajrzeć do wtyczki „Edit Flow” na wordpress.org. Jest to bardzo zgrabna wtyczka, która może być bardzo przydatna.

NetConstructor.com
źródło
Nie. Editflow pozwala tylko skonfigurować wiele statusów niepublikowanych postów. Potrzebny jest sposób, aby zapisać wersje robocze aktualizacji w już opublikowanych postach. to jedna z najbardziej oszałamiających misji w WordPress.
James
1

Istnieje teraz bardzo miłe rozwiązanie tego problemu dzięki wtyczce Drafts of Post Revitions .

Użytkownikom można zezwolić na tworzenie wersji roboczej opublikowanego postu (lub niestandardowego typu posta), który jest tworzony jako podrzędna kopia postu.

Wersje robocze można porównać do opublikowanego elementu nadrzędnego za pomocą funkcji porównywania wersji.

Po opublikowaniu wersji roboczej wszelkie zmiany są integrowane z powrotem do elementu nadrzędnego w miarę usuwania wersji roboczej. Można również utrzymywać wiele szkiców.

Poleciłbym to każdemu - staje się standardową wtyczką do stron WordPress. Podejrzewam jednak, że w niedalekiej przyszłości możemy zobaczyć tego rodzaju funkcje w rdzeniu WordPress.

Xave
źródło
5 lat od aktualizacji
1

Cześć @ e100 :)

Myślę, że inteligentnym rozwiązaniem byłoby skorzystanie z istniejącej bezpłatnej wtyczki. Robi wszystkie rzeczy, o których pisałeś. Wystarczy pobrać go z WordPress.org: https://wordpress.org/plugins/revision-manager-tmc/
Ta wtyczka jest bardzo często i regularnie aktualizowana

Revision Manager TMC działa świetnie z drugą bezpłatną wtyczką do edycji funkcji roli użytkownika - User Role Editor https://wordpress.org/plugins/user-role-editor/

Yaworek
źródło
1
Od 2019 r. Jest to najbardziej kompletne rozwiązanie. Jest podobny do Revisionize, ale bardziej intuicyjny i kompletny. 1) Rewizje są powiązane z oryginalnymi postami; 2) Umożliwia przypisanie redaktorom „roli współdzielonej”, przy jednoczesnym ograniczeniu ich do oryginalnego postu; 3) Sprawia, że ​​zmiany wyglądają jak poprawki, tj. Ukrywa opcje publikowania itp.
timofey.com
I wsparcie ACF.
0

Prawdopodobnie skończę z użyciem jednej z wtyczek wymienionych w innych odpowiedziach, ale kiedy potrzebowałem tej funkcji i nie miałem czasu szukać wtyczek, miałem upewnić się, że zmiany działają, zapisać zmiany i natychmiast je wycofać.

Teraz mój „szkic” jest w moim systemie zmian.

Nie świetne w systemie produkcyjnym, ale wystarczająco dobre w systemie deweloperskim, dopóki nie zdecydujesz się na użycie wtyczki.

TecBrat
źródło
0

Znalazłem tutaj odpowiedź , która zadziałała dla mnie. Zmodyfikowałem go nieco, ponieważ używam niestandardowych ról użytkownika.

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
źródło