joomix

Блог

Добавить визуальный редактор в описание рубрик WordPress

Кто привык работать с системой Wordpress знает, что по умолчанию описание рубрик - это простое текстовое поле без возможности добавить HTML-код.

Наша задача - преобразовать это поле в редактор, аналогичный редактору в записях. 

CMS WordPress славится своими хуками, разработчиками их предусмотрели практически для любых областей. Для того, чтобы найти подходящий, достаточно изучить документацию движка. Есть такие хуки: edit_category_form_fields, позволяющий добавлять дополнительные поля в раздел редактирования категорий и edit_tag_form_fields, отвечающий за новые поля в разделе редактирования меток.

Еще нам надо отключить функции форматирования wp_filter_kses() и wp_kses_data(), иначе при сохранении или обновлении будут вырезаться все HTML теги.

Итак, какие фильтры нам нужны мы выяснили, осталось написать функцию, с помощью которой мы будем изменять ядро. Данный код мы вставляем в файл functions.php нашей темы:

remove_filter( 'pre_term_description''wp_filter_kses' );
remove_filter( 'term_description''wp_kses_data' );

function mayak_category_description($container ''){
$content is_object($container) && isset($container->description) ?
html_entity_decode(
$container->description) : '';

$editor_id 'tag_description';
$settings 'description'
?>
<tr class="form-field">
<th scope="row" valign="top"><label for="description">Описание</label></th>
<td><?php wp_editor($content$editor_idarray(
'textarea_name' => $settings,
'editor_css' => '<style> .html-active .wp-editor-area{border:0;}</style>',
)); ?><br />
<span class="description">Описание по умолчанию не отображается, однако некоторые темы могут его показывать.</span></td>
</tr>
<?php
}
add_filter('edit_category_form_fields''mayak_category_description');
add_filter('edit_tag_form_fields''mayak_category_description');