WordPress: osadzanie edytora TinyMCE (wp_editor)

Osadzanie elementu media button we wtyczkach WordPressa

Pisząc własne wtyczki do WordPressa, niejednokrotnie okazuje się, że musimy dać potencjalnemu użytkownikowi możliwość użycia bardziej wymyślnych narzędzi niż zwykłe pole tekstowe wewnątrz prostego do bólu formularza. Chcąc ułatwić życie osobie odpowiedzialnej za uzupełnianie treści, powinniśmy na poważnie zastanowić się nad umożliwieniem jej edycji sformatowanego tekstu. Z pomocą przychodzi nam wówczas domyślny edytor wizualny, dostępny w WordPressie, który możemy osadzić w dowolnym miejscu strony.

 

Przykładowy kod

Pierwszym argumentem jest domyślna zawartość edytora, podczas edycji będzie to dotychczasowa treść. Kolejny argument to wartość atrybutu id, która będzie przypisana do kodu HTML wygenerowanego edytora. Na końcu podajemy tablicę ustawień, w tym przypadku został wyłączony przycisk „Dodaj media” (media_buttons=false) oraz określiłem wysokość jako 4 wiersze tekstu (textarea_rows=4).

 

Demo

Okazuje się, że edytor można osadzić nie tylko w panelu administracyjnym, czego przykładem jest poniższe demo :)

 

Więcej informacji

  1. http://codex.wordpress.org/Function_Reference/wp_editor
  • Michał Cholewski

    W tak osadzonym edytorze nie kopiuje treści z edytora do textarea, która jest później brana pod uwagę przy zapisie. Czy któś zna sposób jak poprawnie osadzić edytor ?

    • Mateusz Brakoniecki

      Treść wprowadzona do edytora po wysłaniu formularza znajduje się w tablicy $_POST w polu o nazwie określonej w drugim argumencie funkcji wp_editor (w przykładzie jest to „wpeditor_id”). Nazwa pola może być również określona za pomocą parametru „textarea_name”, który należy umieścić w tablicy ustawień, przekazywanej jako argument trzeci do funkcji wp_editor (w przykładzie: w tablicy $editorSettings). W przypadku problemów zawsze można wyświetlić sobie całą zawartość tablicy $_POST za pomocą funkcji print_r i podejrzeć, gdzie znajduje się zawartość edytora.
      Powodzenia w odkrywaniu WordPressa :)