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, в которой он вам нужен. Он также может существовать как страница администратора, с которой взаимодействует администратор / кто бы то ни было.

Это то, что вы искали?

Другие вопросы по тегам