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

WordPress自定义插件add_menu_page提示文件找不到求助

WordPress后台菜单“File not found”问题解决思路
  • 问题根源:add_menu_page的slug参数不是用来填文件路径的,WordPress会把它当作后台路由标识,而非实际文件路径。你直接写includes/my-first-page.php,WordPress会去匹配这个路由,而非加载对应文件,自然会报错。

  • 修复步骤:

    1. 把slug改成纯标识字符串,比如my-plugin-main-page,别带路径和后缀
    2. 给add_menu_page指定一个回调函数,在回调里手动加载目标页面文件
    3. 调整后的示例代码:
      function my_Add_My_Admin_Link() {
          add_menu_page(
              '我的插件页面', // 页面标题
              '我的插件',    // 后台菜单显示名称
              'manage_options', // 访问权限
              'my-plugin-main-page', // 纯slug标识
              'my_plugin_load_page', // 回调函数
              'dashicons-admin-tools', // 菜单图标(可选)
              5 // 菜单排序位置(可选)
          );
      }
      add_action( 'admin_menu', 'my_Add_My_Admin_Link' );
      
      // 回调函数负责加载页面文件
      function my_plugin_load_page() {
          // 先做权限校验,防止非法访问
          if ( !current_user_can( 'manage_options' ) ) {
              wp_die( '你没有权限访问此页面' );
          }
          // 加载同目录下的页面文件
          require_once plugin_dir_path( __FILE__ ) . 'my-first-page.php';
      }
      
    4. 路径说明:因为functions.php在includes目录里,plugin_dir_path(__FILE__)会返回这个目录的绝对路径,所以直接写my-first-page.php就能找到同目录的文件。
  • 额外排查点:

    • 确认my-first-page.php文件确实存在,文件名拼写完全一致(Linux服务器要注意大小写)
    • 检查文件权限,确保服务器有读取该文件的权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 11:27:35