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

간헐적 단식의 장기 효과, 3개월 단식으로 1년 효과 유지
주요 메뉴 바로가기 (상단) 본문 컨텐츠 바로가기 주요 메뉴 바로가기 (하단)

간헐적 단식의 장기 효과, 3개월 단식으로 1년 효과 유지

구글 검색 선호 출처로 추가

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

이미지 출처 : Motion Elements

이미지 출처 : Motion Elements

‘2025 유럽 비만 회의(ECO 2025)’에서 간헐적 단식을 주제로 한 무작위 대조 시험의 예비 결과가 발표됐다. 하루 중 어느 시간대든 상관없이, 3개월 동안 16/8 방식의 시간 제한 식사(TRE)를 유지할 경우, 장기적인 체중 감량 상태를 유지할 수 있다는 내용이다. 요약하자면, ‘간헐적 단식의 장기 효과’에 대한 것이라 할 수 있다.

간헐적 단식의 장기 효과 연구

스페인 그라나다 생물검역연구소에서는 간헐적 단식의 장기 효과를 알아보기 위한 무작위 대조 시험을 진행 중이다. 연구팀에 따르면 하루 중 8시간 안에 하루치 모든 식사를 마치는 방식을 3개월간 유지할 경우, 최소 1년 동안 상당한 체중 감량 효과를 볼 수 있다. 연구팀은 8시간의 식사보다 ‘16시간 동안의 금식’이 장기적 효과에 근본적인 영향을 미친다고 보았다.

16/8 방식은 간헐적 단식 방법론 중에서 잘 알려진 방법 중 하나다. 무엇을 먹는지보다 ‘먹는 시간’을 철저하게 제한하는 것이 핵심이다. 이 방법은 체중 감량 및 심혈관 대사 개선에 효과적이라는 인식이 많다. 

16/8 간헐적 단식법이 건강에 실질적으로 어떤 영향을 미치는지는 둘째로 치더라도, 중요한 것은 16시간 동안의 단식이 상당히 강도 높은 방법에 해당한다는 것이다. 이는 어지간한 의지력을 가진 사람도 장기적으로 지속하기는 쉽지 않다는 뜻이다. 이에 따라 연구팀은 간헐적 단식을 비교적 짧게 유지하더라도 장기적으로 효과가 지속되는지를 확인하고자 했다.

간헐적 단식은 '시간대'에 따라 효과가 다를 수 있다는 지적을 받아왔다 / 이미지 출처 : Motion Elements
간헐적 단식은 ‘시간대’에 따라 효과가 다를 수 있다는 지적을 받아왔다 / 이미지 출처 : Motion Elements

간헐적 단식의 효과, 얼마나 유지될까

연구팀은 올해 1월 발표한 무작위 대조 시험 결과를 통해 식사 시간을 하루 8시간으로 제한하는 방법이 체중 감소 및 심장 대사 개선에 기여한다고 발표한 바 있다. 이번에는 그 연구의 연장선으로, 이 식사 시간 제한법이 장기적 효과를 유지할 수 있을지에 주목했다.

연구팀은 99명의 비만인 성인들을 모집했다. 참가자들의 평균 연령은 49세, 평균 BMI는 32였다. 이들을 대상으로 3개월 동안 16/8 방식의 간헐적 단식을 실시하고, 이후 12개월 동안의 추적 조사를 실시했다. 간헐적 단식의 장기 효과가 얼마나 지속되는지를 확인하기 위함이다.

그룹은 크게 넷으로 나누었다. ▲간헐적 단식을 하지 않는 그룹(대조군) ▲오전 10시 이전에 8시간 식사를 시작하는 그룹 ▲오후 1시 이후에 8시간 식사를 시작하는 그룹 ▲자유롭게 하루 8시간 식사를 선택하는 그룹이다.

정확한 측정을 위해 연구팀은 단식 시작 전, 3개월 단식 종료 후, 그리고 12개월의 추적 조사가 끝난 시점에 각 그룹별 참가자들의 체중과 허리둘레, 엉덩이둘레를 측정해 비교했다.

간헐적 단식을 하지 않은 대조군의 경우, 3개월 후 평균 1.4kg의 체중 감소를 경험했다. 나머지 세 그룹은 각각 평균 4.2kg 감량, 평균 3.1kg 감량, 평균 3.8kg 감량을 보였다. 오전 10시 이전에 식사를 시작해 8시간 식사를 한 그룹이 가장 큰 감량 효과를 보였다. 허리둘레와 엉덩이둘레 또한 오전 10시 이전 시작 그룹이 가장 크게 줄어들었다.

이후 12개월의 추적 관찰 결과, 간헐적 단식을 하지 않은 대조군은 평균 0.4kg 체중이 늘었다. 반면 간헐적 단식을 했던 그룹들은 약 2kg 정도의 감량 상태를 유지했다. 시간을 직접 선택해 단식을 유지했던 그룹은 상대적으로 효과가 덜했지만, 그래도 체중과 허리둘레가 늘어나지는 않았다.

‘예비 결과’라는 점에 주목

연구팀은 이러한 연구 결과를 바탕으로, 간헐적 단식의 장기 효과가 충분히 지속된다는 결론을 내렸다. 단식 시간을 언제부터 언제까지로 하는지는 큰 차이가 없으며, 16시간의 공복 상태를 유지하는 것만으로 상당한 체중 감량이 가능하며 1년 가량 유지할 수 있다는 것이다.

다만, 이 연구 결과를 받아들일 때는 몇 가지 주의할 점이 있다. 연구팀이 ‘예비 결과’라고 언급한 만큼, 이후 연구 진행에 따라 최종 결과는 다르게 나올 수도, 혹은 다른 내용이 추가될 수도 있다는 것이다. 연구 대상이 99명으로 많은 편이 아니었지만, 그중 간헐적 단식으로 인한 부작용을 겪은 사례도 있었다. 이는 간헐적 단식법이 모두에게 적합한 방법이 아닐 수 있다는 것을 보여준다.

위 결과에 따르면 간헐적 단식을 3개월 정도 한시적으로 시행한 뒤, 다소 느슨하게 전략을 바꾼다 하더라도 체중 감량 상태는 유지될 수 있다. 다만, 본인의 건강 상태에 따른 맞춤형 전략이 가장 우선시돼야 하는 만큼, 무리해서 위 방법을 따를 필요는 없다는 것을 유념해야 한다.

3개월의 간헐적 단식 후, 전략을 바꿔도 1년 뒤까지 감량 효과가 유지될 수 있다 / 이미지 출처 : Motion Elements
3개월의 간헐적 단식 후, 전략을 바꿔도 1년 뒤까지 감량 효과가 유지될 수 있다 / 이미지 출처 : Motion Elements
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년만에 엄마된 근황 깜짝 발표…’축하 물결’
  • 직함도 월급도 아니었다, 반값 급여에도 다시 출근하는 이유
    직함도 월급도 아니었다, 반값 급여에도 다시 출근하는 이유

공유하기