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

Суть задачи – установить визуальный редактор для описания рубрик в WordPress.

В каких случаях это может пригодиться?

Чаще всего такой функционал нужен тогда, когда рубрики сайта выступают в качестве посадочных страниц под определенные поисковые запросы и продвигаются в поиске Google или Yandex. При разработке интернет магазинов постоянно используют такой подход. Например, создавая сайт по продаже сантехнике, отдельно продвигают рубрики «Умывальники для ванной»,  «Смесители для кухни» и прочее. В таком случае контент страницы состоит из заголовка, отформатированного текста и карточек товаров с пагинацией. В информационных сайтах, также часто категории используются для продвижения.

Исходя из вышесказанного, чтобы красиво оформить текст описания категории вам нужно установить визуальный редактор, ведь по умолчанию в WordPress вы видите вот такую картину.

В качестве редактора мы будем подключать уже всем известный TinyMCE, который раньше использовался в этом движке по умолчанию до прихода Gutenberg.

Есть два способа подключить данный функционал к вашему сайту.

Без использования плагина

В этом случае вам нужно будет внести код в файл function.php вашей темы.

1. Разрешаем добавление html тегов для поля описания.

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

wp_filter_kses() — очищает текст, оставляя в нем только разрешенные HTML теги.

2. Теперь нужно скрыть старое поле без редактора. Для этого ниже приведенных двух выше строк добавляем код.

/** Скрываем дефолтное поле описания для категории **/
function custom_remove_category_description(){
?>
<script type="text/javascript">
jQuery(function($) {
$('textarea#description').closest('tr.form-field').remove();
});
</script>
<?php
}
add_action('category_edit_form_fields','custom_remove_category_description');

Использования функции custom _remove_category_description на событие category_edit_form_fields, позволяет убрать данное поле только на странице редактирования рубрики в WordPress.

Важный момент! Аналогично вы можете добавить визуальный редактор и для меток в WordPress, но для этого нужно использовать немного другой код.

Для меток последняя строка приведенного выше кода будет иметь вид.

add_action('post_tag_edit_form_fields','custom_remove_category_description');

Аналогично можно вносить правки и для других таксономий, используя события в формате {taxonomy}_edit_form_fields. Где {taxonomy} – это имя вашей таксономии, например «portfolio».

3. Подключаем новое поле с визуальным редактором TinyMCE для страницы редактирования рубрики. Сделать это можно с помощью следующего кода.

/** Добавляем новое поле описания с редактором **/
function edit_custom_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 term-description-wrap">
<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>
</td>
</tr>
<?php
}
// для страниц категорий
add_action('category_edit_form_fields', 'edit_custom_category_description');
 
//для страниц меток
add_action('post_tag_edit_form_fields', 'edit_custom_category_description');

Напомню, все правки мы производим в файле functions.php вашей темы.

Чтобы добавить данное поле к любой таксономии, также функцию edit_custom_category_description вешаем на событие {taxonomy}_edit_form_fields, где {taxonomy} все также название вашей таксономии, например «portfolio».

После внесения всех изменений у вас в админке будет следующая картина.

С использованием плагина

Если провести поиск плагинов выполняющих эту задачу, то вы сможете найти много вариантов. К примеру, вот несколько из них: Visual Term Description Editor, Category Editor, Yoast SEO plugin и другие.

При выборе плагина смотрите, обновляется ли он разработчиком, чтобы избежать возникновения ошибок на сайте.

На этом сегодня все, надеюсь материал был для вас полезен.

Поделиться в социальных сетях:
Нет комментариев к данной статье

Оставить новый комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *