WordPress

Zatrzymaj usuwanie tagów WordPress podczas przełączania z HTML na Visual (TinyMCE)

  • 2 października, 2012
  • 4 min read
Zatrzymaj usuwanie tagów WordPress podczas przełączania z HTML na Visual (TinyMCE)


Zatrzymaj usuwanie tagów <script> przez WordPress podczas przełączania z HTML na Visual (TinyMCE) — WordPress Development Stack Exchange

WordPress Development Stack Exchange to witryna z pytaniami i odpowiedziami dla programistów i administratorów WordPress. Rejestracja zajmuje tylko minutę. Zarejestruj się, aby dołączyć do tej społeczności
Każdy może zadać pytanie
Każdy może odpowiedzieć
Najlepsze odpowiedzi są głosowane i trafiają na sam szczyt
Spytał Oglądane 19 tys. razy
OK, widziałem rozwiązania, które są w połowie drogi do rozwiązania tego problemu, ale nie są one ostateczne i nic, co w 100% rozwiązuje mój problem. Scenariusz:
  • W trybie HTML dodaję trochę JavaScriptu do edytowanego posta.
  • Przełączam na Visual, potem z powrotem na HTML, a tag i cała jego zawartość zniknęła.
Jak mogę temu zapobiec? Próbowałem dodać niestandardowy kod do mojego plikufunctions.php, próbując uzyskać dostęp do rozszerzonego_valid_elements dla TinyMCE, ale nic nie działa. Proszę pomóż!
6
Dodanie JS do treści to bardzo, bardzo zła praktykai po prostu o to proszę zhakowany. Dodaj go za pomocą krótkiego kodu lub jeśli naprawdę musisz, użyj meta/niestandardowych pól postu do przechowywania pliku js i wyświetlania go po zawartości szablonu za pomocą echo get_post_meta($post->ID,'post_javascript',true );
10
Można to dość łatwo zrobić, przyznając unfiltered_html możliwość dowolnej roli, którą chcesz zezwolić na tagi SCRIPT i IFRAME. Oczywiście, jak wspomnieli inni, istnieje nieodłączne ryzyko bezpieczeństwa, dlatego należy zachować rozsądek. Aby dowiedzieć się więcej na temat przyznawania możliwości, zobacz wpis Kodeksu WordPress w add_cap().
Bez grzebania w szablonowym kodzie PHP możesz obejść problem OP - a także problem polegający na tym, że na wielu serwerach nikt inny niż superadministrator nie otrzymuje unfiltered_html możliwość wspomniana przez @Toma Augera - poprzez zainstalowanie wtyczki „Shortcoder” - umożliwia tworzenie „niestandardowych skrótów”, które po prostu renderują jakiś tekst. Może to być wszystko – łącznie z JavaScriptem. Tworzę „niestandardowy krótki kod” dla każdego potrzebnego fragmentu kodu (zwykle jeden dla odrębnego niestandardowego kodu każdej strony), a następnie edytor wizualny widzi krótki kod i go nie usuwa. Świetnie nadaje się również do ponownego wykorzystania kodu JavaScript, jeśli masz wiele stron wymagających tego samego (lub podobnego) kodu.
9
Jest też rozwiązanie dla tych, którzy posiadają wtyczkę Elementor i nie chcą instalować żadnych dodatkowych wtyczek:
  1. Z menu administratora przejdź do Szablony > Dodaj nowy
  2. Wybierz „Kontener” jako typ szablonu i nadaj mu nazwę odpowiednią do późniejszego rozpoznania kodu na potrzeby edycji (jeśli to konieczne).
  3. Na ekranie edytora Elementor kliknij znak +, aby dodać kontener i dodać do niego widżet kodu HTML.
  4. Wklej swój skrypt w polu HTML. (Pamiętaj, że musi <script></script> tagi wokół niego)
  5. Zapisz i wyjdź z powrotem do listy kontenerów. (Szablony > Zapisane szablony > Kontenery)
  6. Znajdź nowo utworzony szablon i skopiuj jego krótki kod z pola przed nim.
  7. Wklej ten krótki kod w dowolnym edytorze tekstu i ciesz się.


Źródło

Warto przeczytać!  oop - Jak korzystać z filtra w tej sytuacji, nie można modyfikować struktury za pomocą filtra