Есть ли способ иметь несколько редакторов WYSIWYG для пользовательского типа записи? Например, если у меня был макет с двумя столбцами, я хотел иметь один редактор для одного столбца и другой редактор для другого.
custom-post-types
wysiwyg
Пол Шелдрейк
источник
источник
Ответы:
Скажем, был вызван ваш пользовательский тип записи
Properties
, вы бы добавили поле для хранения вашего дополнительного редактора tinyMCE, используя код, подобный этому:wysiwyg-editor-2
является идентификатором, который будет применен к мета-блоку,Second Column
является заголовком, который будет иметь мета-блок,second_column_box
является функцией, которая будет распечатывать HTML-код для мета-блока,properties
является нашим собственным типом записи,normal
является местоположением мета-блока иhigh
указывает, что он должен отображаться как можно выше на странице. (Обычно ниже стандартного редактора tinyMCE).Затем, взяв это как самый простой пример, вы должны прикрепить редактор tinyMCE к текстовой области. Нам все еще нужно определить нашу
second_column_box
функцию, которая будет печатать HTML-код для мета-блока, так что это лучшее место для этого:Есть пара вопросов, которые я не знаю, как преодолеть. Редактор tinyMCE будет вложен в метабокс, который может быть не идеальным, и не будет иметь возможности переключаться между режимами редактирования HTML и Visual, а также командами вставки медиафайлов, которые есть в обычном редакторе записей. Переключение режимов, по-видимому, определяется как функция, первым аргументом которой является идентификатор, но, тем не менее, он также закодирован в сценарии wp-tinymce. Для этого можно использовать встроенные функции tinyMCE, но это изменяет текстовую область между полной tinyMCE и базовой текстовой областью без каких-либо кнопок вставки WP HTML.
источник
Во- первых: Большое спасибо к @Thomas Макдональд для его ответа ; Мне нужно было выяснить точно такой же вопрос, который задал @Paul Sheldrake, и код Томаса помог мне начать в правильном направлении.
К сожалению, я застрял, потому что мне нужно было изменить макет по умолчанию на более простой и меньший макет, поскольку мне нужно было использовать TinyMCE в боковом метабоксе. Я искал практически везде решение, особенно на форуме TipsMiki Wiki и TinyMCE TipsMCE Wiki и TinyMCE, и ничего не нашел! 1 Все , что я нашел объяснил , как набор
theme
,width
,height
и т.д. , используя ,tinyMCE.init({...})
но , очевидно , вы не можете использовать , что при использованииtinyMCE.execCommand("mceAddControl")
.Я о озадачен , когда я наткнулся на статью многократным TinyMCE 3 экземпляров на одной странице с помощью Гамильтона Чуа , и он прибил его! Его решение было назначить
tinyMCE.settings
перед вызовомtinyMCE.execCommand("mceAddControl")
, например:Грустная часть в том, что это было действительно не сложно, но это не было документировано где-либо еще, что я мог найти. Удивительно, что почти никто другой не сталкивался с этой проблемой.
Так или иначе, вышеприведенный код сгенерировал следующий второй TinyMCE именно в том формате / макете, который нужен моему клиенту:
(источник: mikeschinkel.com )
Поэтому, если вы используете приведенный выше код @Thomas McDonald, вы обнаружите, что вам нужно изменить макет. Обязательно ознакомьтесь с замечательной статьей Гамильтона Чуа (спасибо, Хэм!) :
PS Если вы делаете что-то даже немного неправильно, TinyMCE может просто не показываться вообще. Например, в моем случае я
theme: "simple"
сначалапользуюсьи ничего не получил, и мне потребовалось больше часа, чтобы понять, что мне просто нужно использоватьtheme: "advanced"
. Так что, если вы обнаружите, что TinyMCE не работает, обязательно попробуйте изменить ситуацию, возможно, у вас возникла аналогичная проблема. (Кстати, я не пробовал никаких других тем и не изучал, что еще доступно; если вы найдете другие темы, которые работают, пожалуйста, оставьте комментарий ниже.)сноска
1 : Очень расстраивает! Спустя чуть больше месяца с WordPress Answer, я теперь ожидаю найти ответы на все мои вопросы с тем же уровнем качества, что и здесь, и в других местах я обычно нахожу разочарование!
источник
$script
а также нет закрытия для твоего наследственности, т.е.EOT;
, Помимо небольших ошибок, это хороший рабочий пример ..;)Поскольку я нашел эту статью как первый результат в Google, я просто хотел прокомментировать, что WP теперь предлагает функцию для решения такого рода задач.
Внутри
add_meta_box
функции добавьте следующий код ->Везде, где вы хотите добавить редактор TinyMCE
Ссылка:
wp_editor
источник
Редактор по умолчанию, tinymce, загружается функцией из wp-admin / includes / post.php, которая называется wp_tiny_mce (); Посмотрите на источник в строке 1350. В строке 1478 есть массив настроек. Одна из опций, очевидно, обозначает селектор textarea, к которому применяется редактор javascript. Я читал этот пост Keighl в своем блоге, который указал мне на это. Прочитайте статью, и, возможно, есть способ вызвать wp_tiny_mce () в плагине раздела администратора и применить его ко второй создаваемой вами текстовой области.
источник
Я получил это, просто добавив «theEditor» как атрибут класса к текстовой области:
источник