Вопрос или проблема
WordPress add_menu_page
и add_submenu_page
поддерживают добавление пользовательской страницы. Созданная страница имеет URL с слагом, похожим на wp-admin/admin.php?page=our-custom-page
Как создать страницу администратора, которая будет иметь слаг, похожий на wp-admin/admin.php/our-custom-page
Я также хочу, чтобы страницы поддерживали внутреннюю маршрутизацию, аналогичную wp-admin/admin.php/our-custom-page
Я знаю, что это можно сделать с помощью настроек сервера, я ищу способ создать это из темы/плагина.
Основная цель – создать пользовательскую страницу администратора без любых “?” в URL параметрах. Маршрут не так важен, главное, чтобы он находился внутри wp-admin/
Как создать страницу администратора, которая будет иметь слаг, похожий на wp-admin/admin.php/our-custom-page
Вы не можете, это невозможно в WP Admin
В отличие от фронтенда, WP Admin не поддерживает красивые URL, и у него нет системы правил переписывания, в которую можно было бы подключиться. То, что вы уже используете, является ближайшим доступным решением.
Ответ может прийти слишком поздно, но я просто хочу поделиться своим решением с будущими читателями.
Кратко;
# Внутри вашего .htaccess
<IfModule mod_rewrite.c>
...
...
RewriteRule ^index\.php$ - [L]
# Добавьте эту строку в ваш .htaccess файл
RewriteRule ^wp-admin/our-custom-page/?$ wp-admin/admin.php?page=our-custom-page [L]
...
...
</IfModule>
Дайте знать, если у вас есть вопросы 🙂
Ответ или решение
Создание пользовательской страницы в админ-панели WordPress с "красивым" URL (как wp-admin/admin.php/our-custom-page
) не поддерживается нативно. Однако, вы можете достигнуть этой цели, добавив правила перенаправления в файл .htaccess
. Ниже приведено подробное описание решения этой задачи.
Шаг 1: Создайте кастомную страницу в админ-панели
Сначала используем стандартные функции add_menu_page
и add_submenu_page
для создания страницы. Добавьте следующий код в файл вашей темы или вашего плагина:
function my_custom_admin_menu() {
add_menu_page(
'Наш кастомный раздел', // Название страницы
'Кастомный раздел', // Название в меню
'manage_options', // Уровень доступа
'our-custom-page', // Слаг
'my_custom_page_callback' // Функция отображения
);
}
add_action('admin_menu', 'my_custom_admin_menu');
function my_custom_page_callback() {
echo '<h1>Добро пожаловать на кастомную страницу!</h1>';
}
Шаг 2: Настройте .htaccess
Чтобы настроить перенаправление с "красивого" URL на стандартный, вам нужно отредактировать файл .htaccess
, расположенный в корне вашей установки WordPress. Добавьте следующее правило перед секцией # END WordPress
:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# Добавьте эту строку для вашего кастомного правила
RewriteRule ^wp-admin/our-custom-page/?$ wp-admin/admin.php?page=our-custom-page [L]
# Остальные правила вашего .htaccess
RewriteRule ^index\.php$ - [L]
...
</IfModule>
Шаг 3: Проверка
После того как вы добавили код и отредактировали .htaccess
, вы сможете получить доступ к вашей кастомной странице по URL:
wp-admin/our-custom-page
Это перенаправит вас на стандартный admin.php?page=our-custom-page
, и ваша страница будет корректно отображаться.
Примечание
- Обратите внимание, что любые изменения в файле
.htaccess
могут повлиять на работоспособность сайта, поэтому убедитесь, что у вас есть резервная копия. - WordPress по умолчанию не поддерживает "чистые" URL в админ-панели, и вышеуказанное решение является обходным путем.
- При использовании этого способа стоит помнить о совместимости с другими плагинами и темами.
Если у вас возникнут вопросы или потребуется помощь, пожалуйста, дайте знать!