FILE: /var/www/html/wp-includes/build/pages/options-connectors/page-wp-admin.php
SIZE: 10290 bytes
MODIFIED: 2026-08-26 05:34:27
CONTENT:
<?php
/**
* Page: options-connectors (wp-admin integrated)
* Auto-generated by build process.
* Do not edit this file manually.
*
* This version integrates with the standard WordPress admin interface,
* keeping the wp-admin sidebar and scripts/styles intact.
*
* @package wp
*/
// Global storage for options-connectors routes and menu items
global $wp_options_connectors_wp_admin_routes, $wp_options_connectors_wp_admin_menu_items;
$wp_options_connectors_wp_admin_routes = array();
$wp_options_connectors_wp_admin_menu_items = array();
/**
* Register a route for the options-connectors-wp-admin page.
*
* @param string $path Route path (e.g., '/types/$type/edit/$id').
* @param string|null $content_module Script module ID for content (stage/inspector).
* @param string|null $route_module Script module ID for route lifecycle hooks.
*/
function wp_register_options_connectors_wp_admin_route( $path, $content_module = null, $route_module = null ) {
global $wp_options_connectors_wp_admin_routes;
$route = array( 'path' => $path );
if ( ! empty( $content_module ) ) {
$route['content_module'] = $content_module;
}
if ( ! empty( $route_module ) ) {
$route['route_module'] = $route_module;
}
$wp_options_connectors_wp_admin_routes[] = $route;
}
/**
* Register a menu item for the options-connectors-wp-admin page.
* Note: Menu items are registered but not displayed in single-page mode.
*
* @param string $id Menu item ID.
* @param string $label Display label.
* @param string $to Route path to navigate to.
* @param string $parent_id Optional. Parent menu item ID.
*/
function wp_register_options_connectors_wp_admin_menu_item( $id, $label, $to, $parent_id = '' ) {
global $wp_options_connectors_wp_admin_menu_items;
$menu_item = array(
'id' => $id,
'label' => $label,
'to' => $to,
);
if ( ! empty( $parent_id ) ) {
$menu_item['parent'] = $parent_id;
}
$wp_options_connectors_wp_admin_menu_items[] = $menu_item;
}
/**
* Get all registered routes for the options-connectors-wp-admin page.
*
* @return array Array of route objects.
*/
function wp_get_options_connectors_wp_admin_routes() {
global $wp_options_connectors_wp_admin_routes;
return $wp_options_connectors_wp_admin_routes ?? array();
}
/**
* Get all registered menu items for the options-connectors-wp-admin page.
*
* @return array Array of menu item objects.
*/
function wp_get_options_connectors_wp_admin_menu_items() {
global $wp_options_connectors_wp_admin_menu_items;
return $wp_options_connectors_wp_admin_menu_items ?? array();
}
/**
* Preload REST API data for the options-connectors-wp-admin page.
* Automatically called during page rendering.
*/
function wp_options_connectors_wp_admin_preload_data() {
// Define paths to preload - same for all pages
// This must exactly match the _fields list in packages/core-data/src/entities.js,
// same fields in the same order, or the preload is never consumed.
$preload_paths = array(
'/?_fields=description,gmt_offset,home,image_max_bit_depth,image_sizes,image_size_threshold,image_strip_meta,name,site_icon,site_icon_url,site_logo,timezone_string,url,page_for_posts,page_on_front,show_on_front',
array( '/wp/v2/settings', 'OPTIONS' ),
);
// Use rest_preload_api_request to gather the preloaded data
$preload_data = array_reduce(
$preload_paths,
'rest_preload_api_request',
array()
);
// Register the preloading middleware with wp-api-fetch
wp_add_inline_script(
'wp-api-fetch',
sprintf(
'wp.apiFetch.use( wp.apiFetch.createPreloadingMiddleware( %s ) );',
wp_json_encode( $preload_data )
),
'after'
);
}
/**
* Enqueue scripts and styles for the options-connectors-wp-admin page.
* Hooked to admin_enqueue_scripts.
*
* @param string $hook_suffix The current admin page.
*/
function wp_options_connectors_wp_admin_enqueue_scripts( $hook_suffix ) {
// Check all possible ways this page can be accessed:
// 1. Menu page via admin.php?page=options-connectors-wp-admin (plugin)
// 2. Direct file via options-connectors.php (Core) - screen ID will be 'options-connectors'
$current_screen = get_current_screen();
$is_our_page = (
( isset( $_GET['page'] ) && 'options-connectors-wp-admin' === $_GET['page'] ) || // phpcs:ignore WordPress.Security.NonceVerification.Recommended
( $current_screen && 'options-connectors' === $current_screen->id )
);
if ( ! $is_our_page ) {
return;
}
// Load build constants
$build_constants = require __DIR__ . '/../../constants.php';
/**
* Fires when the options-connectors admin page is initialized so extensions can register routes and menu items.
*/
do_action( 'options-connectors-wp-admin_init' );
// Preload REST API data
wp_options_connectors_wp_admin_preload_data();
// Get all registered routes
$routes = wp_get_options_connectors_wp_admin_routes();
// Get boot module asset file for dependencies
$asset_file = ABSPATH . WPINC . '/js/dist/script-modules/boot/index.min.asset.php';
if ( file_exists( $asset_file ) ) {
$asset = require $asset_file;
// This script serves two purposes:
// 1. It ensures all the globals that are made available to the modules are loaded.
// 2. It initializes the boot module as an inline script.
wp_register_script( 'options-connectors-wp-admin-prerequisites', '', $asset['dependencies'], $asset['version'], true );
$init_modules = [];
/*
* Add inline script to initialize the app using initSinglePage (no menuItems).
* The dynamic import is deferred until DOMContentLoaded so that all classic
* script dependencies of @wordpress/boot (wp-private-apis, wp-components,
* wp-theme, etc.) have finished parsing and executing before the boot module
* evaluates. Otherwise, a modulepreloaded @wordpress/boot can win the race
* against the classic-script-printing pass on fast CDN-fronted hosts in
* Chrome, evaluating before wp.theme.privateApis is defined and throwing
* "Cannot unlock an undefined object". See <https://core.trac.wordpress.org/ticket/65103>.
*/
$init_js_function = <<<'JS'
( mountId, routes, initModules ) => {
const run = async () => {
const mod = await import( "@wordpress/boot" );
mod.initSinglePage( { mountId, routes, initModules } );
};
if ( document.readyState === "loading" ) {
document.addEventListener( "DOMContentLoaded", run );
} else {
run();
}
}
JS;
wp_add_inline_script(
'options-connectors-wp-admin-prerequisites',
sprintf(
'( %s )( %s, %s, %s );',
$init_js_function,
wp_json_encode( 'options-connectors-wp-admin-app', JSON_HEX_TAG | JSON_UNESCAPED_SLASHES ),
wp_json_encode( $routes, JSON_HEX_TAG | JSON_UNESCAPED_SLASHES ),
wp_json_encode( $init_modules, JSON_HEX_TAG | JSON_UNESCAPED_SLASHES )
)
);
// Register prerequisites style by filtering script dependencies to find registered styles
$style_dependencies = array_filter(
$asset['dependencies'],
function ( $handle ) {
return wp_style_is( $handle, 'registered' );
}
);
wp_register_style( 'options-connectors-wp-admin-prerequisites', false, $style_dependencies, $asset['version'] );
// Build dependencies for options-connectors-wp-admin module
$boot_dependencies = array(
array(
'import' => 'static',
'id' => '@wordpress/boot',
),
);
// Add init modules as static dependencies
// No init modules configured
// Add all registered routes as dependencies
foreach ( $routes as $route ) {
if ( isset( $route['route_module'] ) ) {
$boot_dependencies[] = array(
'import' => 'static',
'id' => $route['route_module'],
);
}
if ( isset( $route['content_module'] ) ) {
$boot_dependencies[] = array(
'import' => 'dynamic',
'id' => $route['content_module'],
);
}
}
/**
* Filters the boot script-module dependencies for the
* options-connectors-wp-admin page.
*
* Surfaces extending this page can append entries to the boot
* dependency list. Each entry is an array with 'import' (string
* 'static' or 'dynamic') and 'id' (script-module handle) keys.
*
* @param array $boot_dependencies Boot dependencies for the page.
*/
$boot_dependencies = apply_filters(
'options-connectors-wp-admin_boot_dependencies',
$boot_dependencies
);
// Dummy script module to ensure dependencies are loaded
wp_register_script_module(
'options-connectors-wp-admin',
$build_constants['build_url'] . 'pages/options-connectors/loader.js',
$boot_dependencies
);
// Enqueue the boot scripts and styles
wp_enqueue_script( 'options-connectors-wp-admin-prerequisites' );
wp_enqueue_script_module( 'options-connectors-wp-admin' );
wp_enqueue_style( 'options-connectors-wp-admin-prerequisites' );
}
}
/**
* Render the options-connectors-wp-admin page.
* Call this function from add_menu_page or add_submenu_page.
* This renders within the normal WordPress admin interface.
*/
function wp_options_connectors_wp_admin_render_page() {
?>
<style>
/* Critical styles to prevent layout shifts - inlined for immediate application */
#wpwrap {
overflow-y: auto;
}
body.js {
background: #fff;
}
/* Reset wp-admin padding */
body.js #wpcontent {
padding-inline-start: 0;
}
body.js #wpbody-content {
padding-bottom: 0;
}
/* Hide legacy admin elements */
body.js #wpbody-content > div:not(.boot-layout-container):not(#screen-meta) {
display: none;
}
body.js #wpfooter {
display: none;
}
/* Accessibility regions */
.a11y-speak-region {
inset-inline-start: -1px;
top: -1px;
}
/* Admin menu indicators */
ul#adminmenu a.wp-has-current-submenu::after,
ul#adminmenu > li.current > a.current::after {
border-inline-end-color: #fff;
}
/* Media frame fix */
.media-frame select.attachment-filters:last-of-type {
width: auto;
max-width: 100%;
}
/* Responsive overflow fix for #wpwrap */
@media (min-width: 782px) {
#wpwrap {
overflow-y: initial;
}
}
</style>
<div id="options-connectors-wp-admin-app" class="boot-layout-container"></div>
<?php
}
// Hook the enqueue function to admin_enqueue_scripts
add_action( 'admin_enqueue_scripts', 'wp_options_connectors_wp_admin_enqueue_scripts' );
“2연패인데도 웃었다”…홍명보 감독이 “아직 여유 있다” 말한 진짜 이유
“전술은 거의 완성됐다” 홍명보 감독 발언, 끝까지 믿는 ‘한 가지’는?
홍명보 감독이 이끄는 대한민국 축구대표팀이 영국과 오스트리아에서 치러진 유럽 원정 A매치 2연전을 마치고 지난 2일 인천국제공항을 통해 귀국했습니다. 이번 원정은 월드컵 본선 조별리그 상대인 남아프리카공화국과 체코를 가상한 전초전 성격이 강했으나, 아쉽게도 코트디부아르에 0-4, 오스트리아에 0-1로 연패하며 득점 없이 일정을 마무리했습니다.
홍 감독은 입국 현장에서 결과에 대해 팬들에게 죄송한 마음 을 전하면서도, “각기 다른 스타일의 팀들과 경기하며 본선을 위해 무엇을 준비해야 하는지 명확히 확인할 수 있었던 소중한 기회였다 ”고 이번 원정을 총평했습니다. 특히 오스트리아전은 향후 맞붙게 될 체코전을 대비하는 데 있어 전술적으로 큰 자산이 될 것이라고 강조하며, 이제부터는 본격적인 상대 전력 분석과 최적의 선수 선발에 집중하겠다는 의지를 보였습니다.
손흥민 에이징 커브 논란
이번 원정 기간 중 가장 뜨거운 감자는 대표팀의 캡틴 손흥민 선수의 활약상 이었습니다. 소속팀 LAFC에서 이번 시즌 페널티킥으로 1골을 기록 중인 손흥민 선수는 이번 2연전에서 모두 출전했으나 침묵을 지켰고, 특히 오스트리아전에서는 결정적인 찬스를 놓치는 모습이 포착되어 일부에서 에이징 커브에 대한 우려가 나오기도 했습니다.
하지만 홍명보 감독은 이러한 부정적인 여론을 단칼에 일축하며 손흥민 선수에 대한 믿음 을 드러냈습니다. 소집 당시부터 감기 기운이 있어 컨디션 조절이 필요했음에도 불구하고, 베테랑이자 주장으로서 팀을 이끄는 역할만큼은 완벽하게 수행했다는 것이 감독의 평가입니다.
홍 감독은 단 한 번도 손 선수를 의심한 적이 없다고 강조하며, 본선에서 그가 보여줄 진가를 여전히 확신하고 있음을 내비쳤습니다.
실점 억제와 하이드레이션 브레이크
홍명보 감독이 이번 원정에서 가장 뼈아프게 생각하는 지점은 바로 수비와 집중력 저하의 문제 였습니다. 먼저 실점하지 않는 경기를 운영하는 것이 승리의 필수 조건임을 역설하며, 실점 이후 급격히 무너지는 경기 흐름을 경계했습니다.
특히 코트디부아르전에서 나타난 하이드레이션 브레이크, 즉 물 보충 휴식 시간 이후의 피지컬 저하와 집중력 흐트러짐이 실점으로 이어진 부분에 대해 깊은 고민을 드러냈습니다.
우리 선수들이 경기 시작 10분에서 15분 사이에 가장 좋은 흐름을 보이는데, 경기 중간에 흐름이 끊겼을 때 이를 어떻게 회복하느냐가 승부의 관건이 될 전망입니다. 홍 감독은 훈련 시간 조절과 전술적 대비를 통해 흐름이 끊기는 타이밍에도 선수들이 집중력을 유지할 수 있도록 다각도의 연구를 이어가겠다고 설명했습니다.
완성 단계에 접어든 전술
연패라는 결과와는 별개로 홍명보 감독은 대표팀의 전술적 완성도에 대해서는 어느 정도 자신감을 피력했습니다. 특히 백3를 활용한 수비 전술과 중원 조합에 있어 유의미한 실험이 이루어졌음을 시사 했습니다.
중원의 핵심으로 기대를 모으는 김진규와 백승호 선수의 활약에 대해서도 긍정적인 평가를 내놓으며, 본선 무대에서 가동할 명확한 모델이 수립되고 있음을 알렸습니다. 이제 남은 기간 홍 감독은 선수들의 부상 방지와 컨디션 관리에 총력을 기울일 예정입니다.
시즌 막바지에 다다른 선수들의 체력적 부담을 고려하여 데이터 중심의 정밀한 점검을 실시하고, K리그에서 활약 중인 자원들까지 면밀히 살펴 최종 명단을 확정 짓겠다는 계획인데요. 경험이 부족한 젊은 선수들이 자신감을 가질 수 있도록 코치진이 세밀하게 지원하겠다는 마지막 다짐에서 월드컵을 향한 홍 감독의 진심을 느낄 수 있었습니다.
#홍명보 #손흥민 #대한민국축구대표팀 #2026월드컵 #축구A매치
올빼미기자
content@viewus.co.kr
[AI 추천] 랭킹 뉴스
‘낙상 사고’ 허영만, 중환자실 이송…한 달째
람보르기니 무르시엘라고 LP 670-4 SV 수동 경매 단 5대 경매 등장
유럽의 유명 축구 구단들을 쇼핑하듯 사고있는 한국인 억만장자 여성
"동창회 나가지 마세요.." 55살 넘어 동창회 가면 안 되는 이유 3가지
"뒤통수 맞지 않으려면.." 60대 이후로 가져야할 마음가짐 3가지
"현관문 위쪽 나사를 돌려 보세요" 20년차 도어 기사의 '진짜 꿀팁'
공유하기
https://feed.viewus.co.kr/ai/article/221284/
댓글0