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' );
전문의 추천 "이 취미활동" 기억력 4배 올리고 치매예방 합니다.
온라인 커뮤니티
나이가 들수록 뇌는 자연스럽게 기능이 떨어지게 돼 있다. 기억력은 흐릿해지고, 집중력도 예전 같지 않다고 느끼는 사람이 많다. 그런데 단순히 나이 탓만 하고 가만히 있으면 뇌는 더 빠르게 늙는다. 그래서 요즘은 단순한 운동이나 식이조절보다 ‘뇌를 자극하는 활동’이 중요하다고 강조되고 있다.
특히 의사들 사이에서도 특정한 취미활동이 인지기능 향상에 실질적인 도움을 준다는 게 알려지면서, 노년층뿐 아니라 전 연령대에서 관심이 높아지고 있다. 뇌를 즐겁게 만들면서 동시에 건강도 챙길 수 있는 취미는 생각보다 다양하다.
온라인 커뮤니티
1. 새로운 악기 배우기 – 뇌의 여러 부위를 동시에 활성화한다
피아노나 기타 같은 악기를 새롭게 배우는 과정은 단순한 취미가 아니다. 소리를 듣고 손을 움직이며 악보를 해석하는 복잡한 과정을 반복하면서, 뇌의 청각, 운동, 시각 영역이 동시에 자극된다. 특히 익숙하지 않은 손 동작을 훈련하면서 손끝 감각도 예민해지고, 기억력과 반응 속도도 향상된다.
악기를 배우는 사람은 그렇지 않은 사람보다 알츠하이머 발생 위험이 낮다는 연구도 있다. 처음엔 어렵게 느껴질 수 있지만, 몇 주만 지나도 몰입도가 높아져 즐거움과 자극을 동시에 얻을 수 있다.
온라인 커뮤니티
2. 새로운 언어 익히기 – 뇌에 ‘외국어 근육’을 만든다
다른 나라의 언어를 배우는 건 단순히 여행을 위한 게 아니라 뇌 건강에도 직접적인 영향을 준다. 외국어를 익히는 과정은 기억력과 사고력을 동시에 써야 해서, 뇌세포 간 연결을 더 촘촘하게 만든다. 특히 어휘를 외우고 문장을 구성하는 훈련은 평소 잘 쓰지 않는 뇌 부위를 적극적으로 자극하는 역할을 한다.
단어 하나를 떠올리는 데도 뇌는 여러 가지 정보를 동시에 처리하게 되기 때문에, 뇌의 처리 속도와 효율이 점점 빨라지는 걸 느낄 수 있다. 앱이나 온라인 강의를 활용하면 어렵지 않게 시작할 수 있다.
온라인 커뮤니티
3. 복잡한 요리 도전하기 – 감각과 판단력을 동시에 훈련한다
요리는 그냥 음식 만드는 걸 넘어서 뇌를 다방면으로 사용하는 복합적인 활동이다. 특히 새로운 레시피를 보고 재료를 손질하고, 조리 순서를 기억하며 동시에 여러 가지를 조절하는 과정이 뇌에 큰 자극이 된다.
특히 시간 조절, 온도 조절, 순서 판단 같은 일은 전두엽 기능과 밀접하게 연결돼 있다. 새로운 재료나 조리법에 도전하는 것은 단순한 요리 이상의 뇌 훈련이 된다. 뇌에 자극을 주는 동시에 성취감도 생기기 때문에 기분까지 좋아진다는 게 장점이다.
온라인 커뮤니티
4. 스토리가 있는 퍼즐 맞추기 – 뇌의 시각적 사고 능력 향상
퍼즐은 단순히 조각을 맞추는 게 아니라 뇌 속에서 ‘공간 지각’과 ‘논리적 판단’이 동시에 일어나게 만든다. 특히 스토리북 퍼즐이나 복잡한 풍경 퍼즐 같은 건, 시각적 정보를 조합하면서 전체 그림을 상상하고 세부를 파악하는 훈련이 된다.
이 과정에서 뇌는 집중력과 인내심을 유지하면서도 문제 해결력을 키우게 된다. 퍼즐 맞추기는 혼자 하는 활동으로도 적합하고, 친구나 가족과 함께해도 재미있어서 꾸준히 즐기기 좋은 취미다. 완성했을 때의 쾌감도 무시 못할 정도다.
위크헬시
content@viewus.co.kr
[AI 추천] 랭킹 뉴스
‘낙상 사고’ 허영만, 중환자실 이송…한 달째
람보르기니 무르시엘라고 LP 670-4 SV 수동 경매 단 5대 경매 등장
유럽의 유명 축구 구단들을 쇼핑하듯 사고있는 한국인 억만장자 여성
"동창회 나가지 마세요.." 55살 넘어 동창회 가면 안 되는 이유 3가지
"뒤통수 맞지 않으려면.." 60대 이후로 가져야할 마음가짐 3가지
"현관문 위쪽 나사를 돌려 보세요" 20년차 도어 기사의 '진짜 꿀팁'
공유하기
https://feed.viewus.co.kr/ai/article/132977/
댓글0