Intereting Posts
Как я могу навсегда кэшировать или «архивировать» блог WP без необходимости дальнейшего обслуживания Как работают автоматические обновления? Обнаружить, если изображение не привязано Как вставить проем в форму поиска? Неустранимая ошибка после 4.4 класса класса-wp-list-table Доступ к post-> ID за пределами цикла для перечисления дочерних страниц Какие данные происходит при обновлении темы WordPress? Если есть обновление? Возможно ли создать резервную копию WordPress, просто скопировав ее? Петля с массивом сообщений с использованием плагина «Дополнительные пользовательские поля» Какова производительность икоты при создании плагинов? Как вернуть только один экземпляр каждого из всего цикла Не удалось создать пользовательскую реализацию шаблона архива продукта WooCommece Описание пунктов меню? Пользовательский ходок для wp_nav_menu () Как получить тип доступа в WordPress? Назначить персонализированное сообщение для пользовательской таксономии

Предотвратить вывод 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' );