Intereting Posts
Вызов функции-члена whereHas () для не-объекта в laravel Как перенаправить обратно в форму с помощью ввода – Laravel 5 Как объединить и обработать 2 формы symfony в одном? PHP Xpath: получить все значения href, содержащие иглу Автоматическая проверка URL-адресов из таблицы MySQL PHP – Почему while (mysql_fetch_array (mysql_query ())) петли? php – Самый быстрый способ проверить наличие текста во многих доменах (более 1000) CodeIgniter Класс публикации Тип файла PDF не разрешен WordPress – Получить количество сообщений и комментариев по дням Локализовать даты в веточках с помощью Symfony 2 Используя PHP, MySQLi и подготовленный отчет, как я возвращаю идентификатор вставленной строки? Карты SoapServer функционируют взаимозависимо, когда сообщения wsdl имеют одинаковое имя части Как предотвратить выполнение задания cron, если оно уже запущено Показывать количество заводов за категориями в боковой панели. CodeIgniter Нужно отправить изображение и текст на сервер

Запуск медиа-загрузчика в WordPress из другого всплывающего окна

Я добавил кнопку на панель инструментов tinyMCE, чтобы запустить всплывающее окно. Кнопка вызывает editor.windowManager.open(...) и передает аргумент такого типа в качестве URL-адреса:

/wp-admin/media-upload.php?post_id=SOME_POST_ID&type=z_recipe&tab=amd_zlrecipe&TB_iframe=true

В моем основном файле плагина у меня есть этот код, который генерирует некоторый код iframe, когда вызывается вышеуказанный URL:

 if (strpos($_SERVER['REQUEST_URI'], 'media-upload.php') && strpos($_SERVER['REQUEST_URI'], '&type=z_recipe') && !strpos($_SERVER['REQUEST_URI'], '&wrt=')) { ZipRecipes::zrdn_iframe_content($_POST, $_REQUEST); exit; } 

Я нашел связанный ответ о загрузке мультимедиа, в котором утверждалось, что следующее должно работать:

 <!DOCTYPE html> <!--suppress HtmlUnknownTarget --> <head> <?php function load_custom_code() { // jQuery wp_enqueue_script('jquery'); // This will enqueue the Media Uploader script wp_enqueue_media(); } add_action( 'admin_enqueue_scripts', 'load_custom_code' ); ?> </head> <body id="amd-zlrecipe-uploader"> <label for="image_url">Image</label> <input type="text" name="image_url" id="image_url" class="regular-text"> <input type="button" name="upload-btn" id="upload-btn" class="button-secondary" value="Upload Image"> <script type="text/javascript"> jQuery(document).ready(function($){ $('#upload-btn').click(function(e) { e.preventDefault(); var image = wp.media({ title: 'Upload Image', // mutiple: true if you want to upload multiple files at once multiple: false }).open() .on('select', function(e){ // This will return the selected image from the Media Uploader, the result is an object var uploaded_image = image.state().get('selection').first(); // We convert uploaded_image to a JSON object to make accessing it easier // Output to the console uploaded_image console.log(uploaded_image); var image_url = uploaded_image.toJSON().url; // Let's assign the url value to the input field $('#image_url').val(image_url); }); }); }); </script> </body> 

Тем не менее, инструменты разработчика браузера говорят мне, что jQuery и $ не определены.

Таким образом, это можно решить, установив способ включения jQuery и wp_enqueue_media или изменив способ создания моего первоначального всплывающего окна.

Любая помощь, которую вы получили, я могу использовать.