Я создал плагин и писал код для страницы в меню администратора.Ссылка в бэкэнд-меню появилась и работала нормально (ссылка на левой панели инструментов).Однако, когда я попытался щелкнуть по нему, URL-адрес загрузился, но я получил сообщение на странице «Извините, у вас нет доступа к этой странице».
Мой начальный код был ниже:
add_action('admin_init', 'settings_menu_page');
function settings_menu_page() {
add_menu_page(
__('Settings Page', 'wpplugin'),
__('Custom Settings', 'wpplugin'),
'manage_options',
'wpplugin',
'settings_page_callback',
'',
85
);
}
function settings_page_callback() {
esc_html_e( 'Settings page text', 'wpplugin' );
}
И тогда я решил изменить хук действия на 'admin_menu', чтобы код выглядел так:
add_action('admin_menu', 'settings_menu_page');
function settings_menu_page() {
add_menu_page(
__('Settings Page', 'wpplugin'),
__('Custom Settings', 'wpplugin'),
'manage_options',
'wpplugin',
'settings_page_callback',
'',
85
);
}
function settings_page_callback() {
esc_html_e( 'Settings page text', 'wpplugin' );
}
И с этим кодом я могу видеть страницу.Единственное, что изменилось, это хук.
Я ссылался на документы для admin_menu и admin_init , и я немного растерялся относительно того, чтоРазница между ними заключается в том, что они разрешают одно с разрешениями, но не другое.
Примечание: я был одним и тем же пользователем WordPress для обоих из них с правами администратора.
Кто-нибудь знаеткакая тут разница?