[ Index ]

PHP Cross Reference of WordPress Trunk (Updated Daily)

Search

title

Body

[close]

/wp-includes/build/ -> routes.php (source)

   1  <?php
   2  /**
   3   * Routes registration - Auto-generated by build process.
   4   * Registers all routes on their respective page init hooks.
   5   * Do not edit this file manually.
   6   *
   7   * @package wp
   8   */
   9  
  10  // Load routes registry
  11  $routes_file = __DIR__ . '/routes/index.php';
  12  if ( ! file_exists( $routes_file ) ) {
  13      return;
  14  }
  15  
  16  $routes = require $routes_file;
  17  
  18  // Group routes by page
  19  $routes_by_page = array();
  20  foreach ( $routes as $route ) {
  21      $page_slug = $route['page'];
  22      if ( ! isset( $routes_by_page[ $page_slug ] ) ) {
  23          $routes_by_page[ $page_slug ] = array();
  24      }
  25      $routes_by_page[ $page_slug ][] = $route;
  26  }
  27  
  28  // Helper function to register routes for a page
  29  $register_routes_callback = function ( $page_routes, $page_slug_underscore, $register_function_name ) {
  30      return function () use ( $page_routes, $page_slug_underscore, $register_function_name ) {
  31          foreach ( $page_routes as $route ) {
  32              $content_handle = null;
  33              $route_handle = null;
  34  
  35              // Register content module if exists
  36              if ( $route['has_content'] ) {
  37                  $content_asset_path = __DIR__ . "/routes/{$route['name']}/content.min.asset.php";
  38                  if ( file_exists( $content_asset_path ) ) {
  39                      $content_asset = require $content_asset_path;
  40                      $content_handle = 'wp/routes/' . $route['name'] . '/content';
  41                      $extension = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '.js' : '.min.js';
  42                      wp_register_script_module(
  43                          $content_handle,
  44                          includes_url( 'build' ) . '/routes/' . $route['name'] . '/content' . $extension,
  45                          $content_asset['module_dependencies'] ?? array(),
  46                          $content_asset['version'] ?? false
  47                      );
  48                  }
  49              }
  50  
  51              // Register route module if exists
  52              if ( $route['has_route'] ) {
  53                  $route_asset_path = __DIR__ . "/routes/{$route['name']}/route.min.asset.php";
  54                  if ( file_exists( $route_asset_path ) ) {
  55                      $route_asset = require $route_asset_path;
  56                      $route_handle = 'wp/routes/' . $route['name'] . '/route';
  57                      $extension = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '.js' : '.min.js';
  58                      wp_register_script_module(
  59                          $route_handle,
  60                          includes_url( 'build' ) . '/routes/' . $route['name'] . '/route' . $extension,
  61                          $route_asset['module_dependencies'] ?? array(),
  62                          $route_asset['version'] ?? false
  63                      );
  64                  }
  65              }
  66  
  67              // Register route with page
  68              if ( function_exists( $register_function_name ) ) {
  69                  call_user_func( $register_function_name, $route['path'], $content_handle, $route_handle );
  70              }
  71          }
  72      };
  73  };
  74  
  75  // Register hooks for both full-page and wp-admin modes
  76  foreach ( $routes_by_page as $page_slug => $page_routes ) {
  77      $page_slug_underscore = str_replace( '-', '_', $page_slug );
  78  
  79      // Register all routes for full-page mode (page.php)
  80      add_action(
  81          "{$page_slug}_init",
  82          $register_routes_callback( $page_routes, $page_slug_underscore, "register_{$page_slug_underscore}_route" )
  83      );
  84  
  85      // Register all routes for wp-admin mode (page-wp-admin.php)
  86      add_action(
  87          "{$page_slug}-wp-admin_init",
  88          $register_routes_callback( $page_routes, $page_slug_underscore, "register_{$page_slug_underscore}_wp_admin_route" )
  89      );
  90  }


Generated : Wed Apr 15 08:20:10 2026 Cross-referenced by PHPXref