Добавление пользовательской страницы администратора WordPress с красивым URL через код

Вопрос или проблема

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 в админ-панели, и вышеуказанное решение является обходным путем.
  • При использовании этого способа стоит помнить о совместимости с другими плагинами и темами.

Если у вас возникнут вопросы или потребуется помощь, пожалуйста, дайте знать!

Оцените материал
Добавить комментарий

Капча загружается...