You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询:能否修改WordPress插件的后台管理面板URL路径?

How to Customize Your Plugin's Admin URL to /wp-admin/my-plugin.php

Hey there! Great question—yes, you absolutely can tweak your plugin's admin panel URL to the cleaner /wp-admin/my-plugin.php format instead of the default mydomain.com/wp-admin/?page=my-plugin structure. Let me walk you through how to do this properly, step by step:

Step 1: Add a Rewrite Rule

First, we need to tell WordPress to map your new clean URL to the original plugin page it expects. Drop this code into your plugin's main PHP file:

add_action('init', 'my_plugin_setup_rewrite');
function my_plugin_setup_rewrite() {
    // Create a rewrite rule to map the clean URL to the original query string
    add_rewrite_rule(
        '^wp-admin/my-plugin.php$',
        'wp-admin/admin.php?page=my-plugin',
        'top' // Ensure this rule takes priority over others
    );
}

Step 2: Flush Rewrite Rules

WordPress won't recognize the new rule until you flush its rewrite cache. You don't need any extra code for this—just:

  • Log into your WordPress admin
  • Navigate to Settings > Permalinks
  • Click the "Save Changes" button (you don't have to modify any settings, just save)

This will refresh the rewrite rules and activate your new URL.

If your plugin adds a menu item in the WordPress admin sidebar, you'll want to update its link to use the new clean URL. Here's how to adjust your existing add_menu_page or add_submenu_page call:

Instead of using the default page slug:

// Old code (uses query string URL)
add_menu_page(
    'My Plugin Settings',
    'My Plugin',
    'manage_options',
    'my-plugin', // Original page slug
    'my_plugin_render_admin_page',
    'dashicons-admin-generic'
);

Modify it to use the new URL path:

// Updated code (uses clean URL)
add_menu_page(
    'My Plugin Settings',
    'My Plugin',
    'manage_options',
    '/wp-admin/my-plugin.php', // New clean URL
    'my_plugin_render_admin_page',
    'dashicons-admin-generic'
);

If that doesn't work as expected, you can filter the menu URLs directly with this snippet:

add_action('admin_menu', 'my_plugin_fix_menu_link', 99);
function my_plugin_fix_menu_link() {
    global $menu;
    foreach ($menu as &$menu_item) {
        // Match the original page slug from your add_menu_page call
        if ($menu_item[2] === 'my-plugin') {
            $menu_item[2] = '/wp-admin/my-plugin.php';
            break;
        }
    }
}

Step 4: Secure Direct Access

Make sure that anyone trying to access the new URL directly has the right permissions. Add this check at the top of your admin page rendering function:

function my_plugin_render_admin_page() {
    // Verify the user has permission to access this page
    if (!current_user_can('manage_options')) {
        wp_die(__('You do not have sufficient permissions to access this page.'));
    }

    // Your plugin's admin page content goes here
    echo '<div class="wrap"><h1>My Plugin Settings</h1></div>';
}

Quick Notes to Keep in Mind

  • Test first: Always try this on a staging site before applying it to your live site—rewrite rules can sometimes cause unexpected behavior.
  • Re-flush on reactivation: If you deactivate and reactivate your plugin, you may need to flush rewrite rules again (just revisit Settings > Permalinks and save).
  • Security plugins: Some security tools might flag the new URL as suspicious. If you run into issues, whitelist /wp-admin/my-plugin.php in your security plugin's settings.

内容的提问来源于stack exchange,提问作者jyyser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:36:20