Заменить текстовое поле описания таксономии на визуальный редактор WYSIWYG

4 июн. 2015 г., 18:28:34
Просмотры: 13.8K
Голосов: 6

Есть ли способ добавить редактор TinyMCE для поля описания таксономии на страницах редактирования терминов? Решение по ссылке (Можно ли добавить визуальный редактор в поле описания для пользовательских таксономий?) больше не работает, вероятно из-за того, что функция wp_tiny_mce устарела.

0
Все ответы на вопрос 4
6
20

Вы можете использовать хук действия {$taxonomy}_edit_form_fields для добавления HTML в таблицу редактирования термина. В этом HTML вы можете удалить текстовое поле описания и добавить редактор TinyMCE.

add_action("{$taxonomy}_edit_form_fields", 'add_form_fields_example', 10, 2);

function add_form_fields_example($term, $taxonomy){
    ?>
    <tr valign="top">
        <th scope="row">Описание</th>
        <td>
            <?php wp_editor(html_entity_decode($term->description), 'description', array('media_buttons' => false)); ?>
            <script>
                jQuery(window).ready(function(){
                    jQuery('label[for=description]').parent().parent().remove();
                });
            </script>
        </td>
    </tr>
    <?php
} 
8 июн. 2015 г. 19:13:07
Комментарии

Олег, я попробую это сделать первым делом утром.

Josh M Josh M
8 июн. 2015 г. 21:57:33

Собираюсь протестировать. Кстати, у тебя опечатка в третьей строке - "function." :)

Josh M Josh M
8 июн. 2015 г. 23:03:33

Мне действительно очень жаль. Спасибо userabuser за исправление моей опечатки. (Я уже собирался уходить домой вчера из-за ужасной головной боли, когда решил ответить на "ещё один" вопрос здесь.)

Oleg Butuzov Oleg Butuzov
9 июн. 2015 г. 10:17:17

Я получаю ошибку "Undefined variable: taxonomy". Как это работает? Я добавил это в functions.php

Jordan Carter Jordan Carter
14 авг. 2017 г. 21:32:12

Я попробовал код, и он работает, но проблема в том, что я не знаю, как применить его к моей ситуации: https://wordpress.stackexchange.com/questions/318814/how-to-modify-default-taxonomy-field-to-a-single-text-field

leonardeveloper leonardeveloper
10 нояб. 2018 г. 07:20:17

@JordanCarter: Замените {$taxonomy} на фактическое название вашей таксономии. Например, 'color' или 'category' (без кавычек).

MastaBaba MastaBaba
30 янв. 2019 г. 15:21:04
Показать остальные 1 комментариев
4

Для тех, кто все еще ищет решение этой проблемы, стоит упомянуть, что плагин Yoast SEO автоматически добавляет WYSIWYG-редактор для описаний на странице редактирования терминов таксономии.

Если вы не планируете использовать этот плагин для SEO, не устанавливайте его только ради этой функциональности. Учитывая популярность плагина, я решил отметить это здесь, так как это может сэкономить время для тех, кто уже планирует его установить.

6 мая 2020 г. 22:32:47
Комментарии

Не могли бы вы подсказать, где находится эта настройка? Это функция премиум-версии или она доступна в бесплатном плагине? У меня в бесплатной версии это не работает...

lcm lcm
10 февр. 2021 г. 11:35:45

@lcm, эта функция была частью бесплатного плагина, и я почти уверен, что она активировалась автоматически. Попробуйте на чистой установке WordPress, и если это сработает, то, вероятно, что-то ломает функциональность. Также стоит проверить консоль на наличие ошибок JavaScript.

jg314 jg314
10 февр. 2021 г. 15:04:45

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

ggedde ggedde
27 мая 2021 г. 00:48:26

Также стоит отметить, что вам необходимо включить опцию "Показывать SEO-настройки для таксономии" в настройках Yoast для данной таксономии, чтобы активировать визуальный редактор. Я использую некоторые таксономии для организационных целей, но не хочу индексировать архивные страницы, однако оставляю эту настройку включённой, чтобы активировать визуальный редактор в поле описания.

pinksharpii pinksharpii
23 июн. 2022 г. 18:48:58
0

Ответ Олега Бутюзова вероятно был актуален в 2015 году, так как был принят и получил голоса. В 2024 году для тех, кто столкнулся с той же проблемой в WordPress 6.4.2, он больше не работает.

Я предлагаю другое решение:

add_action("{$taxonomy}_edit_form_fields", 'tinymce_on_description', 10, 2);

function tinymce_on_description($term, $taxonomy){
    ?>
    <script>
        jQuery(document).ready(function($) {
            wp.editor.initialize('description', {
                tinymce: {
                    // настраиваемые параметры для TinyMCE
                    toolbar1: 'formatselect | bold italic | forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link',
                            plugins: 'link,lists,textcolor,colorpicker',
                            menubar: false,
                            statusbar: false,
                },
                quicktags: true,
                mediaButtons: false,
            });
        });
    </script>
    <?php
}

add_action('init','disable_kses');

function disable_kses() {
    remove_filter('pre_term_description', 'wp_filter_kses');
}

Внутри функции jQuery вызывается wp.editor.initialize('description', {...}) для инициализации редактора TinyMCE на элементе с ID description, которым обычно является текстовое поле для описания термина. Это основа решения.

Отключение функции wp_filter_kses — это важный шаг в данном решении, так как она обычно фильтрует все HTML-теги, кроме ограниченного набора (например, жирного и курсивного текста), из описаний терминов в целях безопасности. Удалив этот фильтр, мы позволяем редактору TinyMCE полностью использовать свои возможности форматирования, включая такие опции, как переносы строк, несколько абзацев, цвета и выравнивание текста. Без этого изменения многие расширенные функции форматирования, предоставляемые редактором TinyMCE, будут удалены при сохранении, что значительно ограничит его полезность.

Однако важно учитывать, что отключение wp_filter_kses может потенциально создать угрозы безопасности, если пользователи с правами редактирования описаний терминов вставят вредоносный код. Рекомендуется учитывать роли и возможности пользователей или реализовать дополнительные меры санитизации для снижения таких рисков.

29 янв. 2024 г. 19:37:17
0

Да, установка плагина Yoast SEO решит проблему. Он отлично работает со всеми популярными конструкторами страниц.

13 мар. 2023 г. 14:21:14