상단 메뉴에서 항목을 지웠는데 모바일 화면에 페이지 목록이 계속 나옵니다. 테마가 등록한 메뉴 위치 중 비어 있는 곳이 있으면 워드프레스가 wp_page_menu 폴백으로 공개 페이지 목록을 자동 출력합니다. wp menu location list 로 빈 위치를 찾고 wp menu location assign 으로 메뉴를 할당합니다.
관리 화면의 메뉴 편집에서 항목을 깔끔하게 정리했는데, 휴대폰으로 사이트를 열면 지운 페이지들이 그대로 있었습니다. 캐시를 의심하기 쉽지만 원인은 메뉴 위치 할당이었습니다.
증상: 관리 화면은 5개, 화면은 9개
상단 메뉴에서 소개, 연락처, 개인정보처리방침, 면책조항 4개를 지웠습니다. 그런데 라이브 화면에는 이 4개가 계속 나왔습니다.
wp-cli로 메뉴 항목을 세면 5개였습니다. 같은 페이지의 HTML을 받아 메뉴 링크를 세면 9개였습니다. HTML 안에는 class 에 menu 가 들어간 <ul> 블록이 두 개 있었고, 두 블록의 내용이 서로 달랐습니다.
| 확인한 곳 | 메뉴 항목 수 |
|---|---|
wp menu item list |
5개 |
| 라이브 HTML | 9개 |
원인: 비어 있는 메뉴 위치의 폴백
테마는 메뉴를 넣을 자리(메뉴 위치)를 여러 개 등록합니다. 아스트라 테마는 primary, secondary_menu, mobile_menu, loggedin_account_menu, footer_menu 다섯 자리가 있습니다.
어떤 자리에 메뉴가 할당되지 않았는데 테마가 그 자리를 출력하면, 워드프레스는 wp_page_menu 폴백으로 공개된 페이지 목록을 자동으로 뿌립니다. 그래서 관리 화면에서 메뉴 항목을 아무리 정리해도, 메뉴가 없는 자리에는 페이지 목록이 계속 나옵니다.
폴백이 내놓는 목록은 공개 상태인 페이지 전부입니다. 그래서 소개, 연락처, 개인정보처리방침, 면책조항처럼 일부러 상단에서 뺀 안내 페이지가 그대로 다시 나타났습니다. 관리 화면의 메뉴 편집은 "할당된 메뉴"만 보여 주므로 이 목록은 거기에 나오지 않습니다. 관리 화면과 실제 화면이 어긋나는 이유가 여기에 있습니다.
이번에는 모바일 메뉴 자리(mobile_menu)가 비어 있었습니다. PC 화면은 상단 메뉴를 쓰니 멀쩡했고, 휴대폰에서만 페이지 목록이 보였던 것입니다.
해결: 빈 자리를 찾아 메뉴를 할당
1. 테마가 등록한 메뉴 위치를 봅니다.
wp menu location list --format=csv
2. 어떤 메뉴가 어느 위치에 들어가 있는지 봅니다. 목록에 없는 위치가 빈 자리입니다.
wp menu list --fields=name,locations --format=csv
3. 빈 자리에 메뉴를 할당합니다. 메뉴 이름은 2번 결과의 name 칸에 나온 것을 씁니다.
wp menu location assign <메뉴이름> mobile_menu
빈 자리가 여러 개면 전부 채웁니다. 한 자리만 채우면 다른 자리에서 같은 폴백이 다시 나올 수 있습니다. root 로 실행한다면 --allow-root 와 --path=<사이트 경로> 를 붙입니다.
메뉴 구성도 같이 보는 것이 좋습니다. 상단에는 카테고리 같은 콘텐츠 메뉴를, 바닥글에는 개인정보처리방침 같은 안내 페이지를 두는 것이 일반적입니다. 상단에 안내 페이지만 있으면 아직 만들고 있는 사이트처럼 보입니다.
고쳐졌는지 확인하는 법
관리 화면이 아니라 라이브 HTML로 확인합니다. 관리 화면은 처음부터 정상으로 보였기 때문입니다. 메뉴 항목을 지운 직후 관리 화면만 보고 "정리 끝"이라고 판단했다면, 휴대폰 방문자에게는 지운 페이지가 계속 보였을 것입니다.
아래 명령은 메뉴 블록이 몇 개인지 셉니다. 블록이 둘 이상 나오고, 각 블록 안의 링크가 서로 다르면 폴백이 아직 남아 있다는 뜻입니다.
curl -sL https://example.com/ | grep -o '<ul[^>]*class="[^"]*menu[^"]*"' | sort | uniq -c
- 메뉴 블록의 링크 수가 관리 화면의 항목 수와 맞는지 봅니다.
- 휴대폰 화면(또는 브라우저의 모바일 보기)에서 메뉴를 열어 지운 페이지가 사라졌는지 봅니다.
- 페이지 캐시를 쓰는 사이트라면 캐시를 비운 뒤 봅니다. 그래야 고친 결과와 예전 결과를 헷갈리지 않습니다.
아스트라 외의 테마에서도 같은 현상이 나는지는 확인하지 못했습니다. 다만 폴백 자체는 워드프레스의 동작이므로, 메뉴 위치를 여러 개 두는 테마라면 같은 방법으로 점검해 볼 만합니다.
확인한 환경
| 항목 | 내용 |
|---|---|
| 프로그램 | 워드프레스, 아스트라 테마, wp-cli |
| 확인한 날짜 | 2026년 8월 22일 |
관련 글: 워드프레스를 고쳤는데 화면에 안 바뀔 때 캐시 확인법, wp-cli가 Success라는데 안 바뀌었을 때
이 글의 내용은 2026년 10월 5일에 마지막으로 확인했습니다. 틀린 곳을 발견하시면 연락처로 알려 주세요.