if (!function_exists('jjsp_admin_page')) : function jjsp_admin_page() { if (!current_user_can('edit_posts')) { wp_die('권한이 없습니다.'); } // 안전하게 옵션 가져오기 $opts = function_exists('jjsp_get_options') ? jjsp_get_options() : []; if (!is_array($opts)) { $opts = []; } $palette = (isset($opts['palette']) && is_array($opts['palette'])) ? $opts['palette'] : array_fill(0, 10, ''); $presets = (isset($opts['presets']) && is_array($opts['presets'])) ? $opts['presets'] : []; $auto_enabled = !empty($opts['auto_enabled']); $auto_multi = !empty($opts['auto_multi']); $auto_rules = isset($opts['auto_rules']) ? (string)$opts['auto_rules'] : ''; // POST 처리 (권한/nonce 확인) if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['jjsp_action'])) { if (!isset($_POST['_wpnonce']) || !wp_verify_nonce($_POST['_wpnonce'], 'jjsp_smart_paste')) { wp_die('보안 토큰이 유효하지 않습니다.'); } if (function_exists('jjsp_handle_post_actions')) { jjsp_handle_post_actions(); // 처리 후 옵션 재로드 $opts = jjsp_get_options(); $palette = (isset($opts['palette']) && is_array($opts['palette'])) ? $opts['palette'] : array_fill(0, 10, ''); $presets = (isset($opts['presets']) && is_array($opts['presets'])) ? $opts['presets'] : []; $auto_enabled= !empty($opts['auto_enabled']); $auto_multi = !empty($opts['auto_multi']); $auto_rules = isset($opts['auto_rules']) ? (string)$opts['auto_rules'] : ''; } } $labels = [ 'C1 Primary','C2 Secondary','C3 Accent/Warn', 'C4 Text','C5 Neutral','C6 Background', 'C7 Text Strong','C8 Muted/Border', 'C9 Info BG','C10 Warn BG' ]; echo '
'; echo '

스마트 붙여넣기 (Gemini→WP) v1.7.0

'; // 상단 고정 툴바 echo ''; echo '
'; wp_nonce_field('jjsp_smart_paste'); echo '
'; echo ''; echo '제미나이 출력물을 아래 입력 칸에 붙여넣고, 필요 시 팔레트/규칙 조정 후 바로 발행하세요.'; echo '
'; // 입력 echo '

입력

'; echo '

'; // 팔레트 10칸 echo '

브랜드 색 매핑 (10)

'; echo '

본문 색을 아래 팔레트로 치환합니다. (본문에 팔레트가 포함되어 있으면 자동 인식값이 우선)

'; echo ''; for ($i = 0; $i < 10; $i++) { $val = isset($palette[$i]) ? $palette[$i] : ''; echo ''; echo ''; echo ''; echo ''; } echo ''; // 프리셋 echo '

팔레트 프리셋

'; echo ''; echo ''; echo ''; echo '
프리셋 불러오기'; echo ' '; echo ' '; echo ''; echo '
프리셋 저장'; echo ' '; echo ''; echo '
'; // 자동 분류 echo '

카테고리/태그 자동 분류

'; echo ''; echo ''; echo ''; echo '
사용'; echo '   '; echo ''; echo '
규칙(JSON)'; echo ''; echo '

형식: [{"taxonomy":"category","term":"민사소송","keywords":["민사","손해배상"]}, {"taxonomy":"post_tag","term":"전자소송","keywords":["전자소송","온라인"]}]
※ taxonomy에는 기본 "category"/"post_tag" 뿐 아니라 커스텀 텍소노미(slug)도 사용 가능. term이 없으면 자동 생성.

'; echo '
'; // 하단 버튼(보조) echo '

'; echo '
'; echo '
'; } endif;