Intereting Posts
Извлеките изображение из содержимого и установите его как изображение Как отключить (или удалить) «Все сообщения, опубликованные и корзины» в сообщениях панели мониторинга Авторы могут настраивать свои авторские страницы? найти сообщения, которые не имеют пользовательской таксономии Отправить электронное письмо всем зарегистрированным пользователям WP перезаписывает мою setup_postdata () идентификатор таксономии эхо-тока для этого цикла? css скрыть все ссылки ответа комментария, кроме наименьших вложенных комментариев edit_form_after_editor только на страницах редактирования сообщений WP_Query: Почему липкий пост не первый элемент в цикле? Как получить информацию о типе сообщения? get_posts / WP_Query Объем памяти 134217728 байт исчерпан Почему номер незашифрованного виджета `__i__` отображается в JavaScript, но не в HTML? Найти совпадения переменной в пользовательской usermeta Измените размер предварительного просмотра изображения на странице редактирования мультимедиа

Предотвратить вывод gui-администратора из страницы с помощью add_submenu_page

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

header('Content-Type: application/zip'); header('Content-Length: ' . filesize($file)); header('Content-Disposition: attachment; filename="file.zip"'); readfile($file); unlink($file); 

Проблема в том, что WordPress по умолчанию включает все в свою тему администратора. Есть ли флаг или что-то, что я могу установить, чтобы сообщить wordpress, что для этой конкретной страницы я не хочу, чтобы он вышел из интерфейса администратора?

Изменить: Вот код, который я использовал для создания страницы подменю:

  add_action('admin_menu', array($this, 'add_download_page')); function add_download_page() { add_submenu_page( 'options.php?post_type=spn_newsletter' , 'Download Newsletter' , 'Download Newsletter' , 'manage_options' , 'spn_download' , array($this, 'do_download') ); } 

Solutions Collecting From Web of "Предотвратить вывод gui-администратора из страницы с помощью add_submenu_page"

Я думаю, вам придется подключить более раннее действие и проверить, загружена ли ваша подстраница, когда функция для отображения подстраницы происходит слишком поздно для отправки заголовков. Функция рендеринга вашей подстраницы может быть пустой, потому что предыдущее действие будет отменено. Я попробовал это с подстраницей themes.php и казалось, что это сработает:

 function wpa82041_do_download(){ global $pagenow; if( 'themes.php' == $pagenow && 'spn_download' == $_GET['page'] ){ // do your download stuff } } add_action( 'admin_init', 'wpa82041_do_download' );