Как использовать TinyMCE для "биографической информации пользователя"?
Я хотел бы предоставить нашим пользователям WP (авторам) редактор TinyMCE вместо стандартного textarea
для их "Биографической информации" на странице профиля .
Я потратил много времени на поиск в Интернете плагинов и ссылок на то, как это сделать без удовлетворительного решения.
Буду признателен за любые советы.
4 answers
Я нашел очень полезный пост в блоге который точно показывает, как выполнить то, что мне нужно, всего с тремя небольшими изменениями на странице user-edit.php
.
Первое изменение
Мне пришлось добавить имя класса в тег <textarea>
для описания.
<textarea name="description" id="description" rows="5" cols="30"
class="CLASS_NAME_HERE"><?php echo esc_html($profileuser->description); ?>
</textarea><br />
Второе изменение
Мне пришлось добавить вызов функции в wp_tiny_mce()
вот так.
<?php wp_tiny_mce( false, array( "editor_selector" => "CLASS_NAME_HERE" )); ?>
Обратите внимание, что первый аргумент wp_tiny_mce
(если true) будет отображать действительно урезанную версию редактора (например вы бы увидели на Быстром посте).
Третье изменение
По умолчанию Wordpress удаляет определенные теги (определенные в $allowedtags) из поля описания пользователя. Итак, я нашел плагин, который в основном снимает ограничения html. Плагин называется Html-биография Ласки.
Приведенный выше ответ работает, однако он ломается каждый раз, когда WordPress обновляется, не переносится и изменяет основные файлы WordPress (огромное "нет").
Это может быть сделано полностью с помощью крючков и фильтров в functions.php или в теме, или в плагине. Смотрите здесь:
Как упоминал Том выше, вероятно, лучше не редактировать основные файлы WordPress, они будут удалены при обновлении до последней версии.
Я написал плагин, который заменяет поле профиля биографической информации визуальным редактором WordPress, TinyMCE, позволяя вам редактировать биографию автора с помощью форматированного текста, используя новую функцию wp_editor(), которая была выпущена с WordPress 3.3.
Http://wordpress.org/extend/plugins/visual-biography-editor/
Использование этого плагина гарантирует, что редактор не будет удален со следующим обновлением ядра, что вам определенно следует сделать по соображениям безопасности.
Мы должны добавить js lib и редактор инициализации для id="описание"
function mysite_show_extra_profile_fields($user) {
wp_enqueue_editor();
?>
<script>
document.addEventListener("DOMContentLoaded", function(event) {
var id = 'description';
wp.editor.initialize(id, {
tinymce: {
wpautop: true
},
quicktags: true
});
});
</script>
<?
}
add_action('show_user_profile', 'mysite_show_extra_profile_fields');