Intereting Posts
Ресурсы Avada по-прежнему загружаются с локального хоста после миграции базы данных Добавление опции в короткий код Поиск пользователя с помощью WP_User_Query пользовательские вкладки в загрузчике мультимедиа Плагин со специальным значком меню администратора Получите RSS-канал о новом обновлении плагина Таможенная система тегов пользовательских сообщений типа «Страница не найдена» Получение предупреждений и уведомлений от Fresh WordPress 3.1.2 Показать все сообщения текущего тега просмотра Проверьте, если home.php и set home.php как page_on_front Пользовательские метаданные не сохраняются после упаковки в класс Enclosing Shortcode действует как самозакрывающийся index.php не является главной страницей, но показывает, что это Один пост с различным контентом, в зависимости от страницы Присвоение меток сообщению с переднего конца с использованием плагина tag-it jquery UI

Очистить настраиваемое поле при добавлении нового тега

При добавлении нового тега в интерфейс администратора WordPress не перезагружает страницу. Он отправляет данные с помощью ajax-вызова, очищает поля и добавляет тег в список справа.

Я работаю с пользовательской таксономией, которая работает как теги. Я добавил настраиваемое поле для этой таксономии. Когда пользователь добавляет новый термин, данные в моем настраиваемом поле не очищаются.

Я попытался использовать jQuery для очистки полей при нажатии кнопки отправки, но, конечно, это очищает поля, даже если тег не добавлен (если, например, поле имени не было заполнено).

Предлагает ли WordPress какую-либо систему обратного вызова или крючка на стороне Javascript / jQuery, которую я мог бы использовать для выполнения функции при добавлении нового тега?

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

Благодарю.

Не могли бы вы сделать что-то подобное?

function tag-added-script() { ?> <script> jQuery(function($) { $('.tagadd').click(function() { // Run Your Jquery Here alert('test'); }); }); </script> <?php } add_action( 'admin_head', 'tag-added-script' ); 

Вышеуказанное будет реагировать всякий раз, когда нажимается кнопка «tagadd». Теоретически вы могли бы захватить пользовательский идентификатор поля и очистить его с помощью jquery.

После некоторых экспериментов я нашел лучший хак:

  $('#addtag #submit').click(function () { // Look for a div WordPress produces for an invalid form element if (!$('#addtag .form-invalid').length) { // hide elements and reset hidden field } }); 

Привязка к событию клика на кнопке отправки фиксирует как отправку кликов, так и отправки, в которые пользователь попадает, введите текстовое поле. Последние не были захвачены при привязке к событию submit на элементе формы.

Проверка на .form-invalid element не является идеальным решением, так как WordPress может легко изменить имя класса в будущем. Но я нашел его наиболее полным в том, чтобы поймать пустое поле имени или дублирующее имя – ни один из которых WordPress не позволит идти вперед.