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 검색에서 뷰어스 기사를 더 자주 볼 수 있습니다.


후종인대골화증 원인 및 증상 진단 및 치료 정보

후종인대골화증은 척추 뒷부분을 따라 이어지는 후종인대가 뼈처럼 딱딱하게 변해, 척추관 내부 공간이 좁아지고 때로는 신경과 척수를 압박하는 질환이에요. 주로 경추(목뼈) 쪽에서 많이 발생하지만, 흉추나 요추 부위에서도 나타날 수 있답니다. 증상이 경미할 수도 있지만, 심각할 경우엔 마비나 보행 곤란 등 커다란 영향을 줄 수 있어요. 이번 글에서는 왜 이런 일이 생기는지, 어떤 증상을 보이는지, 어떤 검사∙치료∙예방 방법이 있는지 이야기해볼게요.

어느 날부터 목이 자주 뻐근해지고, 손이 저리거나 걸을 때 다리가 묵직하게 느껴져요. 단순한 목디스크나 근육 뭉침일 거라고 생각했는데, 병원에서 ‘후종인대골화증’이라는 생소한 진단을 받으셨다면? 갑자기 낯선 이름에 당황스러울 수 있죠. 하지만 원인을 정확히 알고 조기부터 적절히 대처하면, 통증과 마비 같은 합병증을 줄일 수 있답니다.

후종인대골화증(OPLL)란?

  • 후종인대: 척추 뼈(추체)의 후방(뒤쪽) 표면을 따라 길게 연결되어, 척추와 디스크를 지지해주는 인대

  • 골화: 유연해야 할 인대가 뼈 형태로 딱딱하게 변함

  • 발생 부위: 주로 목뼈(경추)에 흔하나, 흉추나 요추에서도 가능

  • 영향: 척추관 공간이 좁아지고, 그 안을 지나는 척수나 신경근을 누르면 신경학적 증상이 나타남

후종인대골화증 자체는 1차적 원인이 완전히 밝혀지지 않았으며, 유전∙호르몬∙환경 등 다양한 요소가 복합적으로 작용하는 것으로 알려져 있어요.

후종인대골화증의 주요 증상

경미한 초기 증상

  • 목∙어깨∙등 불편감, 경직

  • 팔∙손가락 저림, 따끔거림(감각 이상)

  • 가벼운 근력 저하

진행 시 나타나는 증상

  • 척수 압박(골수병증) 증상:

  • 걷기 곤란(보행장애): 다리가 무겁고 힘이 빠짐

  • 미세한 손동작 어려움: 단추 끼우기나 젓가락 사용이 서툴어짐

  • 배뇨∙배변 문제(장∙방광 조절 장애)

  • 신경근 압박(근병증) 증상:

  • 목, 어깨, 팔, 손의 통증∙저림∙무감각

  • 통증이 쑤시거나 날카롭기도

급격한 악화

  • 목 부위 가벼운 충격이나 넘어짐 후 증상이 갑자기 나빠짐

  • 심각할 경우 마비, 감각 소실 등 발현

증상은 대개 서서히 진행하지만, 외상 등이 겹치면 급격히 악화될 수 있어 주의가 필요해요.

후종인대골화증 원인과 위험 요인

유전적 소인

  • 가족력 있는 경우, 발병률 높아질 수 있음

호르몬∙내분비 변화

  • 일부 연구에서 당뇨, 갑상선 질환 등과 연관성 제기

특정 인종/민족적 경향

  • 동아시아(특히 일본)에서 발병률이 상대적으로 높다고 알려짐

기타

  • 미세 외상 누적, 비만, 칼슘∙인대 대사 이상 등 (명확치 않지만 가능한 요인)

후종인대골화증 검사 및 진단

신체∙신경학적 검사

  • 목 움직임 범위, 팔∙다리 근력, 감각, 건반사(반사 신경) 등 확인

영상 검사

  • X-ray: 측면에서 보면 경추 후방 인대 부위가 두꺼워진 모습 확인 가능

  • CT 스캔: 골화 범위·정도 정밀 판단

  • MRI: 척수 압박 정도∙신경 변성 정도 파악

전기생리검사(근전도, 신경전도 검사)

  • 신경 신호 전달 상태 확인

기타

  • 골밀도 측정, 갑상선 기능 검사, 당뇨 검사 등 병력 따라 진행

조기에 발견할수록 신경 손상을 예방하기가 좋아요.

후종인대골화증 치료 방법

비수술적 관리

  • 생활습관 개선: 체중 관리, 적절한 운동(특히 목 주변 근력 강화), 과도한 목 스트레스 줄이기

  • 물리치료: 목∙등 주위 근육 이완, 자세 교정

  • 진통∙항염증제(NSAIDs), 근이완제: 통증∙긴장 완화

  • 주사 요법: 스테로이드, 신경차단술 등(일시적 증상 완화)

경증이고 진행성이 크지 않다면 비수술적으로 증상 조절을 시도해볼 수 있어요.

수술적 치료

  • 척수 압박이 크거나, 마비 진행 등 심각하면 수술 고려

  • 후궁 성형술(Laminoplasty): 척추 뒤쪽 뼈판을 열어 척수 공간 넓힘

  • 후방 감압술(라미넥토미): 일부 뼈 제거로 압박 해소

  • 전방 감압술(골화된 인대 제거 후 고정): 인대를 직접 제거∙유합술(디스크∙뼈 일부 제거, 보형물로 안정화)

  • 수술 방식은 압박 위치, 골화 범위, 환자 상태에 따라 달라짐

  • 수술 후 재활∙물리치료로 회복 기간 필요

후종인대골화증 예방 및 관리

정기 검진

  • 경미한 목 통증, 저림이 계속되면 MRI 등으로 조기 진단

중량 운동 시 안전수칙

  • 목에 과도한 부담(무거운 스쿼트 바벨 등) 주의, 올바른 자세 필수

유산소 운동 + 목 주변 스트레칭

  • 목∙어깨·등 근육 강화, 유연성 증진

체중 조절

  • 비만일수록 척추∙인대 부담 커질 수 있음

생활 습관

  • 의자·모니터 높이 조절, 장시간 스마트폰 목 숙임 피하기

영양

  • 균형 잡힌 식단으로 골∙인대 건강 지원(칼슘, 비타민D, 단백질 등)

마무리 및 결론

후종인대골화증(OPLL)은 척추 뒷부분 인대가 뼈처럼 두껍게 굳어, 신경 압박을 일으키는 질환이에요. 유전∙호르몬∙생활습관 등 여러 요인이 합쳐져 발생하며, 경추에서 흔히 나타납니다. 초기에는 경미한 목 불편감이나 손 저림 정도로 지낼 수 있지만, 진행하면 보행장애, 마비, 배변장애 등 중증 신경 증상을 초래할 수 있지요.

  • 조기발견이 중요하며, 정기검진을 통해 미리 파악하는 게 좋아요.

  • 경증은 물리치료, 약물, 생활습관 개선으로 상당히 도움 받을 수 있고,

  • 중증 상태라면 수술로 척수 압박을 해소해야 마비 진행을 막을 수 있습니다.

무엇보다, 평소 목 건강 관리(바른 자세, 무리한 동작 피하기, 운동 습관)가 인대와 척추 건강을 지키는 열쇠랍니다. 목 통증, 팔다리 저림이 오래가면 전문의 진료를 통해 정확히 확인하시길 권장해요. 건강한 일상을 위해, 내 척추와 목을 소중히 관리해주세요.

author-img
건강한 삶을 리뷰하는 Heeee
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년만에 엄마된 근황 깜짝 발표…’축하 물결’
  • 직함도 월급도 아니었다, 반값 급여에도 다시 출근하는 이유
    직함도 월급도 아니었다, 반값 급여에도 다시 출근하는 이유

공유하기