Repository navigation
Releases: he-works/wp-he-sorts
Release list
v1.0.16
치명적 버그 수정
자동 업데이트("지금 업데이트") 진행 시 "Cannot redeclare he_sorts_init()" 오류로 플러그인이 자동 비활성화되던 문제를 수정했습니다.
원인: GitHub에서 내려받은 압축 파일의 폴더명(wp-he-sorts-main)과 실제 설치된 폴더명(plugin-HE-SORTS)이 달라서, 워드프레스 코어가 업데이트 후 재활성화를 시도할 때 잘못된(예전) 폴더 경로를 기준으로 삼아 이미 로드된 플러그인과 같은 함수가 선언된 파일을 다시 불러오면서 충돌이 발생했습니다.
after_install() 훅에서 destination_name 값도 함께 올바르게 갱신하도록 수정했습니다.
v1.0.15
버그 수정 (핵심)
에디터 페이지 CSS가 워드프레스 좌측 관리자 메뉴와 본문을 함께 감싸는 #wpwrap을 display:flex; flex-direction:column으로 강제 변경하고 있었습니다. 이로 인해 워드프레스 자체의 메뉴 위치 계산 스크립트와 충돌해 관리자 메뉴가 화면 하단으로 밀려나고 편집 화면이 대부분 빈 여백으로 보이는 문제가 발생했습니다.
#wpwrap/#wpcontent/#wpbody는 더 이상 건드리지 않고, HE SORTS 자신의 래퍼(.he-sorts-wrap)에만 calc(100vh - 관리자바 높이)로 높이를 직접 계산해 적용하도록 변경했습니다.
기타
- SortableJS를 외부 CDN(jsdelivr) 대신 플러그인 내장 파일로 전환 (외부 스크립트 차단 환경 대응)
- SortableJS 로드 실패 시에도 나머지 에디터 기능은 정상 동작하도록 초기화 로직 분리
v1.0.14
버그 수정
- 하위 항목 분산 문제 수정: 1뎁스 항목(하위 메뉴 포함)을 2뎁스로 이동 후 다시 1뎁스로 꺼낼 때 하위 항목이 기존 부모 아래에 남아있던 문제 수정 —
recalculateParents()를 "유효한parentId유지 + 이동한 항목만 DOM 재탐색" 하이브리드 방식으로 수정 - 레이블에
</span>출력 문제 수정: 초기화(reset) 후 에디터 메뉴 텍스트 옆에</span>문자가 출력되던 문제 수정 —strip_menu_badge()를 중첩<span>처리가 가능한strip_tags()방식으로 변경
v1.0.13
v1.0.13 (2026-04-23)
- 버그 수정: 부모 항목 삭제 시 자식 항목이 고아로 남아 depth가 강제 감소되던 문제 수정 — 삭제 시 하위 항목 전체(block)를 함께 제거하고 하위 항목 수를 confirm 메시지에 표시
- UX 개선: 에디터 높이를
calc(100vh - 73px)고정값 대신 flex-chain으로 계산 — WP 버전·테마별 관리자바 높이 차이 대응 - UX 개선: WP 관리자바 실제 높이를 JS로 읽어
--wp-admin-bar-hCSS 변수로 주입 — 헤더 sticky top이 정확하게 적용됨
v1.0.11
v1.0.11 (2026-04-23)
- 버그 수정: 드래그로 항목을 이동할 때 하위 메뉴가 따라오지 않던 문제 수정
- 버그 수정: 1뎁스 항목을 2뎁스로 이동 시 하위 메뉴가 전부 열려 보이고 토글 화살표가 작동하지 않던 문제 수정
- 버그 수정:
duplicate_page_settings등 원래 1뎁스였던 메뉴를 2뎁스로 이동 시 권한 오류 수정 - 버그 수정:
googlesitekit-settings등 3뎁스 메뉴 빈 화면 문제 추가 개선 ($_parent_pages올바르게 업데이트)
v1.0.10
변경 사항
버그 수정
- 3뎁스 메뉴 권한 오류:
hbu-settings,googlesitekit-settings등 접근 시 "권한 없음" 오류 해결- 원인: WordPress
admin.php가 non-.php 부모 슬러그를 가진 depth-3 항목의 훅 이름을 잘못 계산 (admin_page_xxxvs. 실제 등록된 이름) - 해결: PHP에서
$_registered_pages에 별칭 추가 + 액션 위임으로 접근 허용
- 원인: WordPress
- 항목 이동 시 하위 메뉴 자동 펼쳐짐: 메뉴를 다른 항목 하위로 이동할 때 하위 메뉴가 모두 펼쳐지던 문제 수정
UX 개선
- 3뎁스 이동 차단: 하위 메뉴가 있는 항목은 3뎁스로 이동 불가 (드래그·들여쓰기 버튼 모두 차단)
- ▲/▼ 버튼 위치 변경: 드래그 핸들 바로 우측(메뉴 아이콘 왼쪽)으로 이동 — 펼치기/접기 화살표와 혼동 방지
- 드래그 핸들 아이콘 변경: ≡ (hamburger) 스타일로 변경
v1.0.9
변경 사항
버그 수정
- 권한 오류 수정:
hbu-gdrive,duplicate_page_settings등 플러그인 페이지 접근 시 '권한 없음' 오류 해결 — PHP URL 정규화 제거, 클라이언트 JS(he-sorts-menu.js)에서 처리 - 커스텀 메뉴 아코디언 수정: HE SORTS로 추가한 커스텀 메뉴의 하위 항목으로 이동 시 WP 관리자 사이드바에서 해당 메뉴가 펼쳐지지 않던 문제 수정
신규 기능
- ▲/▼ 이동 버튼: 각 항목 우측에 위/아래 화살표 버튼 추가 — 드래그 없이 클릭으로 동일 레벨 한 칸씩 이동 가능
UX 개선
- 헤더 버튼 이동: 저장 / 항목 추가 / 구분선 / 초기화 버튼을 상단 헤더 우측으로 이동 (기존 사이드바 컬럼 제거, 트리 패널 공간 확대)
- 자동 접힘: 드래그·들여쓰기·내보내기로 뎁스 변경 시 이동된 항목의 하위 메뉴 자동 접힘 처리
v1.0.8
v1.0.8 (2026-04-23)
버그 수정
- 2뎁스·3뎁스로 이동한 메뉴 클릭 시 프론트 404 에러 수정
- 서브메뉴 URL을
admin.php?page=slug형식으로 정규화 - 커스텀 부모 아래로 이동한 항목도 올바른 관리자 URL로 이동
- 서브메뉴 URL을
UX 개선
- 드래그 시 접혀있는 하위 메뉴가 강제로 펼쳐지던 현상 수정
- 수동으로 펼친 하위 메뉴만 그대로 유지됨
- 드래그 종료 후 접힘 상태 정상 복원
설치 방법
he-sorts-1.0.8.zip 을 WordPress 플러그인 업로드 화면에서 업로드하세요.
기존 버전이 설치되어 있다면 "이미 설치된 플러그인 교체" 옵션이 표시됩니다.
v1.0.7
v1.0.7 (2026-04-23)
버그 수정
- 커스텀 메뉴 항목의
target="_blank"설정이 실제 관리자 메뉴에 반영되지 않던 문제 수정 - 구분선 slug가 WordPress 기본 구분선과 충돌할 수 있던 문제 수정
- 자동 업데이트 시 파일시스템 초기화 오류 및 같은 경로 이동으로 인한 파일 삭제 버그 수정
보안 강화
- 커스텀 메뉴 아이콘 필드에 이미지 URL 입력 시 올바르게 sanitization 처리
안정성
- Firefox 등 일부 브라우저에서 드래그 depth 추적이 작동하지 않던 문제 수정 (SortableJS onMove 활용)
- 손상된 config 데이터로 인한 무한 재귀 방지 로직 추가
설치 방법
he-sorts-1.0.7.zip 파일을 WordPress 플러그인 업로드 화면에서 업로드하세요.
기존 버전이 설치되어 있다면 "이미 설치된 플러그인 교체" 옵션이 표시됩니다.
v1.0.6
| [1] | _blank target 적용 | admin_head 훅 + inject_custom_target_script() 메서드 추가. 커스텀 메뉴에 target: '_blank'가 저장되어 있으면 JS로 실제 메뉴 링크에 주입 |
|---|---|---|
| [2] | 구분선 slug 충돌 방지 | separator-he-10 → separator-he-sorts-10 형식으로 변경해 다른 플러그인과 충돌 제거 |
| [3] | 아이콘 URL 입력 허용 | http로 시작하면 esc_url_raw(), Dashicon 클래스명이면 sanitize_html_class() 처리. 빈 값 fallback 추가. sanitize_config()와 ajax_add_custom_item() 두 곳 모두 수정 |
| [4] | 드래그 depth 추적 안정화 | document.mousemove 리스너 삭제, SortableJS onMove 콜백으로 대체 → Firefox 등에서 mousemove 미발화 문제 해결. dragStartX는 onStart의 evt.originalEvent.clientX에서 캡처 |
| [5] | DFS 무한루프 방지 | he_sorts_dfs()에 &$visited 파라미터 추가. config 데이터 손상으로 순환 참조 발생 시에도 무한 재귀 방지 |