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

如何改写WordPress账户菜单中Admin Tools的跳转路径?

解决方案

要实现将WooCommerce账户菜单中的「Admin tools」链接直接跳转到站点后台(https://{PATH}/wp-admin),你需要调整代码逻辑,不再依赖自定义rewrite endpoint,而是直接修改菜单链接:

  1. 移除不必要的endpoint注册:删掉原代码中add_admin_tools_account_endpoint函数及对应的init钩子,因为我们不需要在/my-account下创建/wp-admin路径。
  2. 修改菜单链接生成逻辑:新增过滤器拦截菜单URL生成,直接指向后台地址。
  3. 移除无用的endpoint内容钩子:删掉原代码中woocommerce_account_admin-tools_endpoint相关的钩子和函数,因为不再需要显示自定义内容。

修改后的完整代码如下:

add_filter( 'woocommerce_account_menu_items', 'custom_account_menu_items', 10 );
function custom_account_menu_items( $menu_links ){
    if ( current_user_can('administrator') ) {
        // 将Admin tools菜单添加到账户菜单首位
        $menu_links = array_slice( $menu_links, 0, 0, true )
            + array( 'wp-admin' => __('Admin tools') )
            + array_slice( $menu_links, 0, NULL, true );
    }
    return $menu_links;
}

// 自定义Admin tools菜单的跳转链接
add_filter( 'woocommerce_get_endpoint_url', 'custom_admin_tools_endpoint_url', 10, 4 );
function custom_admin_tools_endpoint_url( $url, $endpoint, $value, $permalink ) {
    if ( $endpoint === 'wp-admin' && current_user_can('administrator') ) {
        // 直接返回站点后台的完整URL
        $url = admin_url();
    }
    return $url;
}

代码说明:

  • woocommerce_account_menu_items:保留原逻辑,仅给管理员账户菜单顶部添加「Admin tools」选项。
  • woocommerce_get_endpoint_url:通过这个过滤器拦截「wp-admin」标识的菜单URL生成,直接替换为WordPress内置的admin_url()生成的后台地址,该函数会自动适配当前站点的域名路径。

最后记得进入后台「设置」→「固定链接」页面,直接点击保存按钮刷新固定链接规则,确保菜单链接生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 16:50:20