WordPress functions.php - Администратор HTML инъекций и отправки форм
Я создал новый элемент навигации слева для моего администратора WP:
add_action( 'admin_menu', 'addManagementMenuItem' );
function addManagementMenuItem(){
add_menu_page('Issue Management', 'Issue Management', 'manage_options', 'issue_management_slug', 'issue_management_building_function','',3);
}
function issue_management_building_function(){
if(!current_user_can('manage_options')){
}
else {
?>
...
...
Итак, где у меня есть многоточие... это то место, где начинается мой HTML, и я записываю некоторую информацию на страницу с помощью различных операторов php echo для вывода некоторых данных.
Теперь я хотел бы дать пользователю возможность войти в фильтр и нажать "Отправить". Это выдаст POST на другую страницу, которая получит данные поста, запустит что-то и выведет что-то еще на экран. Я просто думал, что это полностью уведет пользователя из области WP-ADMIN (я хочу, чтобы все пользователи оставались на правой панели, чтобы это выглядело так, как будто это происходит на WordPress в моей новой области администратора)
Что-то не так в этом подходе, когда я помещаю тонны html в functions.php - как создать страницы для пользовательского раздела администратора, где я могу делать такие вещи, как публикация форм и переход на несколько страниц?
Я думал, что лучшим решением было бы поместить iframe в мой введенный HTML-файл в functions.php, и тогда страницы могут говорить сами с собой, как обычно, за кулисами в WP-admin.
Кто-нибудь может указать мне правильное направление?
Спасибо!
1 ответ
Учитывая возможности пользовательского ввода /_POST, которые вы хотели бы добавить к этому, вы можете рассмотреть возможность создания этой функциональности как своего собственного плагина. Я всегда оставлял пользовательские функциональные возможности ограниченными не-пользовательским взаимодействием в файле functions.php, но что-нибудь еще, вероятно, лучше подходило бы как его собственный плагин.
Например, что если вы создали каталог плагинов с именем nullhypothesis:
add_action( 'admin_menu', 'addManagementMenuItem' );
function addManagementMenuItem(){
add_menu_page('Issue Management', 'Issue Management', 'manage_options', 'nullhypothesis/file_to_do_your_bidding.php', 'issue_management_building_function','',3);
}
Это тот четвертый параметр, который в документации упоминает, что вы должны включить menu_slug, но он не обязательно должен быть только функцией - это также может быть определенный вами файл.
Затем в вашем файле file_to_do_your_bidding.php (в вашем плагине) вы можете добавить любую функциональность _POST, в которой он вам нужен. Он также может существовать как страница администратора, с которой взаимодействует администратор / кто бы то ни было.
Это то, что вы искали?