Zadałem to pytanie około roku temu i mam nadzieję, że istnieje jakieś proste rozwiązanie, które pozwoli mi osiągnąć cel. A więc oto:
Często używam skrótów w Edytorze administracyjnym, ale kiedy przekazuję to klientowi, często nie rozumieją, jak działają.
To, czego szukam, to rozwiązanie, które po prostu automatycznie renderuje skojarzone dane wyjściowe skrótów w administracyjnym edytorze WYSIWYG.
Z wizualnego punktu widzenia chciałbym, aby wyświetlało się podobnie do tego, kiedy pojawia się linia „więcej” lub gdy obraz jest wyświetlany w edytorze. Rozumiem przez to, że użytkownik zobaczy wynik, ale będzie mógł go tylko usunąć, ale nie będzie mógł edytować treści renderowanego skrótu.
Odpowiedzi:
Robienie tego, o co prosisz, nie jest wcale takie złe. Wykonanie pierwszego powinno zająć około godziny, a kolejne 10 minut.
Ostatecznie, co zamierzasz zrobić, to stworzyć wtyczkę TinyMCE. Oto, co powinieneś uzbroić, aby rozpocząć:
Masz teraz wszystkie narzędzia do zrobienia! Ze wszystkich tego najbardziej interesujący będzie kod w tym bloku w przykładowym kodzie WP:
Tutaj skrót do galerii zostaje zastąpiony
img
tagiem.img
Tag ma klasęwp-gallery
, która zostanie zaprojektowany przez CSS znaleźć tutaj .Edytuj 2016-04-06: Zaktualizowano zawartość i linki do TinyMCE 4 i WordPress 4.4
źródło
To nie jest pełna odpowiedź, tylko kierunek projektowania. Myślę, że najlepszym podejściem jest coś takiego:
W edytorze posta administratora
Zerwij wszystkie skróty z zapisanego postu i wyrenderuj je w metaboksie oprócz edytora . Upewnij się, że pojawiają się w tej samej kolejności, w jakiej występują krótkie kody w małym edytorze.
W tinyMCE javascript API
Wykonaj funkcję jQuery, gdy użytkownik kliknie krótki kod, zamienia HTML z metaboksu do edytora. I wzajemnie. Sama kolejność powinna być odpowiednia jako skojarzenie, ale nie jestem pewien, czy załączać krótkie kody. Istnieje jednak wiele sposobów zaprojektowania ładnego połączenia ID. Aktualizacji skrótów można dokonywać w locie za pomocą ajax.
Nigdy nie zapisuj renderowanego stanu shortcode
Przed przełączeniem edytorów zapisz wersje robocze, automatyczne wersje robocze i opublikuj, wykonaj wywołanie API, aby uruchomić przywracanie, aby renderowany stan krótkiego kodu nigdy nie został zapisany ...
Można to zrobić, ale musisz być zaznajomiony z interfejsem API tinyMCE, aby zrozumieć, gdzie i kiedy uzyskać dostęp do zawartości edytora, i podłączyć czynności javascript przed „zapisz” i więcej.
Może być kilka edytorów tinyMCE w tym samym edytowaniu postu.
Część przywracania można zbadać, patrząc na zachowanie
[gallery]
krótkiego kodu. Ale kliknięcie[MY_SHORTCODE]
musi zostać wykonane przez kilka sztuczek jQuery.w skrypcie admin_footer uzyskaj dostęp do zawartości aktywnego kursora za pomocą:
jest wskazówką jak zacząć.
źródło
Szukałem też sposobu graficznego wyświetlania i poprawiania skrótów. A teraz w końcu znalazłem samouczek, który dokładnie to robi: https://generatewp.com/take-shortcodes-ultimate-level/
Dodam opis, aby wyszukiwarki go podniosły:
źródło