Intereting Posts
Изменить строку запроса на довольно постоянную ссылку get_posts не работает должным образом Как я могу организовать / создать список архивов по году и месяцу wp_set_auth_cookie () не работает в вызове Ajax Пользовательская таксономия Сортировка для пользовательского запроса Исключение липких сообщений из цикла и WP_Query () в WordPress? Использование WP, а не .htaccess для перенаправления страниц / сообщений Что может привести к сбою функций автоматической установки в WordPress (v3.0.3)? Как рассчитать среднее значение мета-значения (числовое) конкретного автора Измените текст справки «Введите название здесь» в настраиваемом типе сообщения Как заставить шаблон категории отображать полные сообщения вместо частичных сообщений? Добавить поле ко всем пользовательским типам сообщений update_option не работает в этом сценарии – как я могу исправить? WordPress Multisite с несколькими доменами с использованием Nginx Как я могу использовать шаблоны CPT по умолчанию из подпапки?

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