Этот код работает, но прерывает загрузчик мультимедиа. Как мне интегрировать его таким образом, который не будет?

Я написал какой-то пользовательский код, который я застрял в панели загрузки мультимедиа, используя фильтр. Он делает пару вещей. Во-первых, он меняет текст кнопки «отправить» для пользователей, которые добавляют вещи через загрузчик. Во-вторых, он делает так, чтобы содержимое поля URL-адреса файла автоматически вводило вход для загрузки изображения для формы, которую я создал, когда изображение для нее загружается через загрузчик мультимедиа. (это JQuery). Наконец, есть CSS, чтобы скрыть элементы загрузчика мультимедиа, которые пользователям не нужно видеть.

Когда эта функция находится в файле functions.php, это приводит к тому, что медиа-библиотека останавливается при загрузке изображений. Он просто висит на вращающемся сером шаре. Но он также работает.

Как я могу интегрировать этот код в сайт так, чтобы он не заставлял загрузчик мультимедиа работать?

add_filter('attachment_fields_to_edit', 'my_plugin_action_button', 20, 2); function my_plugin_action_button($form_fields, $post) { $send = "<input type='submit' class='button' name='send[$post->ID]' value='" . esc_attr__( 'Use Photo' ) . "' />"; $form_fields['buttons'] = array('tr' => "\t\t<tr class='submit'><td></td><td class='savesend'>$send</td></tr>\n"); ?> <script> jQuery('.savesend input[type=submit]').click(function(){ var url = jQuery(this).parents('.describe').find('.urlfile').data('link-url'); var field = jQuery(this).parents('.describe').find('.urlfield'); field.val(url); }); </script> <style> #media-head-125, #imgedit-response-125, .savebutton.ml-submit, .image-size, .align, .post_content, .post_excerpt, .image_alt, .post_title.form-required, .media-types.media-types-required-info, .url { display: none !important; } </style> <?php return $form_fields; } 

Solutions Collecting From Web of "Этот код работает, но прерывает загрузчик мультимедиа. Как мне интегрировать его таким образом, который не будет?"

Проверьте, имеют ли элементы медиа html предыдущие classes , возможно, вы удалили какой-либо класс из окна мультимедиа (кнопка, я думаю), и некоторые js functions не могут быть вызваны, как hide() .

Я думаю, вам нужно изменить только два места (см. Стрелки):

 .... $form_fields['buttons'] = array('tr' => "\t\t<tr class='submit'><td></td><td class='savesend mySender123'>$send</td></tr>\n"); ?> ⇧⇧⇧ <script> jQuery('.mySender123 input[type=submit]').click.................. ⇧⇧⇧ ......