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' );

말차, 노년층 ‘수면 품질’과 ‘사회적 기능’에 효능 있어
주요 메뉴 바로가기 (상단) 본문 컨텐츠 바로가기 주요 메뉴 바로가기 (하단)

말차, 노년층 ‘수면 품질’과 ‘사회적 기능’에 효능 있어

구글 검색 선호 출처로 추가

Google 검색에서 뷰어스 기사를 더 자주 볼 수 있습니다.

Designed by Freepik (https://www.freepik.com/)

Designed by Freepik (https://www.freepik.com/)

‘말차’는 차잎을 찌고 말려서 가루 형태로 만든 것이다. 우려내서 마시는 차와 달리, 분쇄된 가루를 함께 섭취하기 때문에 상대적으로 진한 편이며, 요리나 디저트를 만들 때 가루째로 활용하기도 한다. 다양한 영양소를 함유하고 있는 말차가 건강에 이롭다는 사실은 널리 알려져 있다.

녹차 잎에는 폴리페놀의 일종인 카테킨과 아미노산의 일종인 L-테아닌(이하 테아닌)이 포함돼 있다. 테아닌은 ‘편안한 상태’에서 나타나는 뇌의 알파파(α-wave)를 증가시킨다. 스트레스와 불안을 줄이고 마음을 편안하게 해주며, 그 상태에서 주의력과 집중력을 발휘할 수 있게 해주는 효과가 있다. 한편, 알파파는 창의력과 직관적 문제 해결력도 향상된다고 알려져 있다.

테아닌은 일반 녹차에도 들어있지만, 잎을 우려내서 마시는 것과 달리 말차는 잎까지 섭취하므로 테아닌 농도가 더 높다. 테아닌과 알파파의 연관성, 그리고 알파파의 증가가 뇌 기능에 미치는 영향을 토대로 ‘말차의 효능’을 알아보고자 한 연구가 있다.

말차가 ‘인지 능력 유지’에 도움이 되는가?

말차에는 비타민 C와 E, 마그네슘, 칼륨 등 다양한 영양소가 함유돼 있다. 특히 두드러지는 성분으로는 카테킨과 테아닌이 꼽힌다. 카테킨은 폴리페놀 계통의 대표적 항산화 물질이며, 테아닌은 뇌가 이완될 수 있도록 돕는 아미노산이다.

일본의 한 연구팀은 60세에서 85세 사이의 노인 99명을 모집해 12개월에 걸친 연구를 진행했다. 연구 참가자 중 64명은 ‘스스로 생각했을 때 인지력이 떨어진 것 같다’라고 이야기한 사람이었으며, 35명은 실제로 ‘경도 인지장애’가 있음이 확인된 사람들이었다. 

이들은 자동화 프로그램을 활용한 무작위 선정을 통해 말차 섭취 그룹과 위약 그룹으로 나눠서 배정됐다. 그룹 배정 시 변수로는 두 가지를 고려했다. 먼저, 연령대가 고르게 배치될 수 있도록 74세 이상과 미만으로 구분했다. 다음으로 뇌 건강과 관련이 있는 아포리포 단백질 E(APOE) 유전자형이 무엇인지를 참조하여 양쪽 그룹에 서로 균형이 이루어지도록 했다.

‘말차 섭취 그룹’에 배정된 사람들은 매일 2g의 말차를 캡슐 형태로 섭취하도록 했다. 연구자들이 밝힌 캡슐의 상세 성분은 카테킨 170.8mg, 테아닌 48.1mg, 카페인 66.2mg이었다. 실제 말차 2~3g 정도에 해당하는 양이다. 반면, ‘위약 그룹’은 옥수수 전분이 포함된 캡슐을 섭취하도록 했다.

말차 섭취 여부에 따른 효능을 점검하기 위해, 3번에 걸친 인지능력 평가를 실시했다. 첫 번째는 연구 시작 시점, 두 번째는 중간 지점인 6개월 경과 시점, 마지막 세 번째는 연구 종료 시점이다. 평가에는 몬트리올 인지 평가(MoCA)와 알츠하이머 질병 협동 연구 일상활동(ADCS-MCI-ADL)이 사용됐다. 여기에 더해 말차 섭취가 다른 영향을 미치는지를 확인하고자, 참가자들의 신경심리 상태, 기억력, 수행 능력, 주의력, 사회적 인지 및 수면 질 등도 평가 대상으로 삼았다.

인지 기능은 영향 없음, 수면의 질&사회적 기능 개선돼

연구팀은 말차를 섭취한 참가자들이 연구 종료 시점에 인지 기능 면에서의 개선을 보일 것이라 기대했다. 하지만 실제로 위약 그룹과 비교했을 때 개선된 바는 없었다. 뇌신경 이미지 상으로도 두드러지는 변화는 나타나지 않았다. 즉, 말차 섭취로 인한 기억력 등 인지 기능 개선 효과는 없었다는 이야기다.

다만, 수면의 질과 사회적 인지 기능에서는 개선 효과가 있었다. 연구팀은 말차에 포함된 테아닌 성분이 수면 질을 개선하는 데 도움이 됐을 것으로 보고 있다.

잠을 잘 자는 것은 연령대를 불구하고 건강에 중요한 요소다. 수면이 부족하면 기억력이나 집중력에 부정적인 영향을 미칠 수 있고, 누적되면 치매 등 뇌 질환 발생 위험을 증가시킨다. 이런 점에서 보면 말차 섭취로 수면의 질이 향상된다는 것만으로도 유의미한 성과라 할 수 있을 것이다.

한편, 연구팀은 말차 섭취 그룹의 사회적 인지 기능 개선이 눈여겨볼 만하다고 보았다. 말차 섭취 그룹의 참가자들은 얼굴 표정을 인식하거나 단어 의미를 이해하는 데 있어 더 나아진 모습을 보였다.

의사소통 능력 저하는 치매의 초기 징후 중 하나이자 치매 환자의 주된 스트레스 요인이기도 하다. 말차 섭취로 인해 사회적 인지 능력이 개선됐다는 것은, 치매 환자에 관한 임상 연구에서 말차를 보다 집중적으로 연구해볼 가치가 있음을 시사한다.

카테킨·테아닌과 뇌 건강의 관계

미국 건강전문 미디어 ‘메디컬뉴스 투데이’는 해당 연구에 참여하지 않은 의학 전문가를 찾아 연구 내용에 관한 의견을 물었다. 인디애나 주 홀리스틱MD의 랄프 월도 박사 역시 연구팀과 마찬가지로 “높은 테아닌 함량이 수면의 질을 높인 주요 요인일 것이다”라고 답했다. 테아닌으로 인해 증가한 알파파가 불안과 스트레스를 줄여 더 깊은 수면을 유도한다는 것이다.

한편, 월도 박사는 사회적 인지 기능의 개선에는 카테킨이 기여했을 거라고 설명한다. 카테킨은 뇌 염증을 줄이고 새로운 신경세포 연결을 자극하는 데 기여한다. 실제로 카테킨의 효능은 알츠하이머와 같은 신경퇴행성 질환 관련 연구에서 종종 언급된다.

카테킨은 기억력, 주의력, 문제 해결력 등 특정 인지영역에 효능이 있는 것으로 알려져 있다. 즉, 이번 연구에서 말차의 효능과 인지 능력 개선 사이의 연관성을 알아보고자 했을 때, 핵심 포인트로 삼았을 가능성이 높다. 

연구 결과는 ‘별다른 효능이 없다’라고 나왔지만, 이를 곧이곧대로 받아들이기는 어렵다. 카테킨 섭취량과 섭취 기간, 개인적 요인에 따라 효과가 나타나지 않거나 다르게 나타날 수 있다는 점 등을 고려해야 하기 때문이다. 이는 보다 대규모 참가자를 대상으로 한 정밀 연구가 뒷받침돼야 하는 대목이다.

한편, 신경과 전문의인 클리포드 세길 박사는 “말차를 언제 마셨는지에 초점을 맞추고 싶다”라는 의견을 전했다. 만약 오후 늦게, 또는 저녁에 말차를 마실 경우, 아침에 마시는 것과 달리 수면에 어떤 영향을 미칠지 비교 분석이 필요하다는 것이다. 이는 말차에 포함된 카페인 성분의 작용에 관한 우려다.

세길 박사는 테아닌이 수면을 돕는 역할을 한다고 입증되지 않았다는 점을 지적했다. 아침에 커피를 마시면 일정 시간 동안 각성 상태가 유지됐다가 밤에 잘 잘 수 있게 되는 것과 마찬가지로, 말차도 비슷한 작용을 할 가능성이 있다는 것이다.

author-img
헬스라이프헤럴드
content@viewus.co.kr

댓글0

300

댓글0

[AI 추천] 랭킹 뉴스

  • ‘낙상 사고’ 허영만, 중환자실 이송…한 달째
  • 람보르기니 무르시엘라고 LP 670-4 SV 수동 경매 단 5대 경매 등장
  • 유럽의 유명 축구 구단들을 쇼핑하듯 사고있는 한국인 억만장자 여성
  • "동창회 나가지 마세요.." 55살 넘어 동창회 가면 안 되는 이유 3가지
  • "뒤통수 맞지 않으려면.." 60대 이후로 가져야할 마음가짐 3가지
  • "현관문 위쪽 나사를 돌려 보세요" 20년차 도어 기사의 '진짜 꿀팁'

당신을 위한 인기글

  • 유럽의 유명 축구 구단들을 쇼핑하듯 사고있는 한국인 억만장자 여성
    유럽의 유명 축구 구단들을 쇼핑하듯 사고있는 한국인 억만장자 여성
  • 아나운서 이혜성 “7년간 부모와도 대화 단절 상태”
    아나운서 이혜성 “7년간 부모와도 대화 단절 상태”
  • 최근 들어서 공유와 한효주가 나이들어 보이는 진짜 이유
    최근 들어서 공유와 한효주가 나이들어 보이는 진짜 이유
  • 14살에 키 172cm, 48kg으로 연예인 엄마 따라잡은 딸의 놀라운 근황
    14살에 키 172cm, 48kg으로 연예인 엄마 따라잡은 딸의 놀라운 근황
  • 전국민이 제발 결혼하라 응원했떤…세기의 커플의 최후
    전국민이 제발 결혼하라 응원했떤…세기의 커플의 최후
  • 노소영, 최태원과 이혼확정 후 집 떠나며 올린 사진 한장…모두 오열
    노소영, 최태원과 이혼확정 후 집 떠나며 올린 사진 한장…모두 오열
  • ‘KTX 논란’ 박위, 더 큰 일 발생…변호사 “법적으로 처벌될 수 있는 상황”
    ‘KTX 논란’ 박위, 더 큰 일 발생…변호사 “법적으로 처벌될 수 있는 상황”
  • 이병철 회장이 경고한 ‘약속 미루는 사람’ 4가지 특징
    이병철 회장이 경고한 ‘약속 미루는 사람’ 4가지 특징
  • 구혜선, 이혼 6년만에 엄마된 근황 깜짝 발표…’축하 물결’
    구혜선, 이혼 6년만에 엄마된 근황 깜짝 발표…’축하 물결’
  • 직함도 월급도 아니었다, 반값 급여에도 다시 출근하는 이유
    직함도 월급도 아니었다, 반값 급여에도 다시 출근하는 이유

당신을 위한 인기글

  • 유럽의 유명 축구 구단들을 쇼핑하듯 사고있는 한국인 억만장자 여성
    유럽의 유명 축구 구단들을 쇼핑하듯 사고있는 한국인 억만장자 여성
  • 아나운서 이혜성 “7년간 부모와도 대화 단절 상태”
    아나운서 이혜성 “7년간 부모와도 대화 단절 상태”
  • 최근 들어서 공유와 한효주가 나이들어 보이는 진짜 이유
    최근 들어서 공유와 한효주가 나이들어 보이는 진짜 이유
  • 14살에 키 172cm, 48kg으로 연예인 엄마 따라잡은 딸의 놀라운 근황
    14살에 키 172cm, 48kg으로 연예인 엄마 따라잡은 딸의 놀라운 근황
  • 전국민이 제발 결혼하라 응원했떤…세기의 커플의 최후
    전국민이 제발 결혼하라 응원했떤…세기의 커플의 최후
  • 노소영, 최태원과 이혼확정 후 집 떠나며 올린 사진 한장…모두 오열
    노소영, 최태원과 이혼확정 후 집 떠나며 올린 사진 한장…모두 오열
  • ‘KTX 논란’ 박위, 더 큰 일 발생…변호사 “법적으로 처벌될 수 있는 상황”
    ‘KTX 논란’ 박위, 더 큰 일 발생…변호사 “법적으로 처벌될 수 있는 상황”
  • 이병철 회장이 경고한 ‘약속 미루는 사람’ 4가지 특징
    이병철 회장이 경고한 ‘약속 미루는 사람’ 4가지 특징
  • 구혜선, 이혼 6년만에 엄마된 근황 깜짝 발표…’축하 물결’
    구혜선, 이혼 6년만에 엄마된 근황 깜짝 발표…’축하 물결’
  • 직함도 월급도 아니었다, 반값 급여에도 다시 출근하는 이유
    직함도 월급도 아니었다, 반값 급여에도 다시 출근하는 이유

공유하기