Кто привык работать с системой 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_id, array( ‘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’);




(1 оценок, среднее: 5,00 из 5)