# 블로그 아이템 수 조사 보고서 ## 조사 일자 2025-11-27 ## 보고된 이슈 - 웹사이트 https://www.planitai.co.jp/blogs 에 Post 22가 표시되지 않음 - Post 22: "AIと共に働くということ" (2025-11-18) - WordPress Admin: https://2025032623012012057904.onamaeweb.jp/blog/wp-admin/post.php?post=22 ## 조사 결과 ### 문제 확인 #### Post 22 상태 (개별 API 접근 시) - **ID:** 22 - **제목:** "AIと共に働くということ" - **상태:** "publish" ✅ - **날짜:** 2025-11-18T10:33:03 - **카테고리:** `category-tech-blog` ✅ - **Class List:** `["post-22","post","type-post","status-publish","format-standard","hentry","category-tech-blog"]` - **특징:** `has-post-thumbnail` 없음 (featured image 없음) #### WordPress API 목록 조회 결과 WordPress API 엔드포인트들을 모두 확인한 결과: ``` GET /wp-json/wp/v2/posts?_embed GET /wp-json/wp/v2/posts?per_page=100 GET /wp-json/wp/v2/posts?per_page=100&orderby=date&order=desc ``` **결과: Post 22가 목록에서 반환되지 않음 ❌** 반환된 포스트 (3개만): 1. Post 83 - "Freee API自動化実践ガイド..." (2025-11-27) 2. Post 75 - "2025/11/27 AI News" (2025-11-27) 3. Post 68 - "Gemini + MCP実践ガイド..." (2025-11-26) ### 웹사이트 표시 현황 #### `/blogs` (테크블로그) - 2개 표시 중 - Post 83: "Freee API自動化実践ガイド..." - Post 68: "Gemini + MCP実践ガイド..." - **Post 22: 표시되지 않음 ❌** ## 근본 원인 ### 1단계: WordPress API 레벨에서 필터링됨 Post 22는 Next.js 애플리케이션의 문제가 **아닙니다**. WordPress API 자체가 Post 22를 반환하지 않고 있습니다. ### 2단계: Revalidate API 정상 작동 `/app/api/revalidate/route.ts` 확인 결과: - `revalidateTag('posts')` - 포스트 캐시 무효화 ✅ - `revalidatePath('/blogs')` - 블로그 페이지 재생성 ✅ - GET/POST 양방향 지원 ✅ **Revalidate는 정상 작동하지만**, WordPress API가 Post 22를 반환하지 않으므로 캐시를 갱신해도 Post 22는 나타나지 않습니다. ### 3단계: Next.js 코드 정상 작동 `/lib/api.ts:223-266` - `fetchAllPosts()`: ```typescript const res = await fetch(`${apiBase}/posts?_embed`); const posts = toArray(data) .map((item: any) => { /* 매핑 로직 */ }) .filter((post) => post.subCategory); // subCategory가 있는 것만 ``` - WordPress API가 반환하는 포스트만 처리 가능 - Post 22가 API 목록에 없으므로 처리할 수 없음 ## WordPress에서 확인해야 할 사항 ### 1. Post 22의 "Sticky Post" 설정 확인 WordPress Admin에서 확인: 1. Post 22 편집 화면 열기 2. 오른쪽 사이드바에서 "Document" → "Featured" 섹션 확인 3. **"Stick to the top of the blog"** 체크박스 확인 - 체크되어 있으면 해제 **이유:** Sticky post는 일반 쿼리에서 제외될 수 있습니다. ### 2. Post 22의 Visibility 설정 확인 WordPress Admin에서 확인: 1. Post 22 편집 화면 열기 2. "Visibility" 설정 확인 3. **"Public"**으로 설정되어 있는지 확인 - "Password protected" 또는 "Private"가 아니어야 함 ### 3. Featured Image (아이키ャ치 画像) 설정 Post 22에는 `has-post-thumbnail`이 없습니다. 1. Post 22 편집 화면 열기 2. 오른쪽 사이드바 "Featured Image" 설정 3. Featured Image 추가 **참고:** 다른 포스트(83, 75, 68)는 모두 `has-post-thumbnail`이 있습니다. ### 4. WordPress REST API 설정 확인 WordPress Admin → Settings → Reading: 1. "Search Engine Visibility" 확인 - "Discourage search engines..." 체크 해제 권장 2. REST API 관련 플러그인 확인 - "Disable REST API" 같은 플러그인이 특정 포스트를 필터링하는지 확인 ### 5. 카테고리/태그 재설정 Post 22의 카테고리를 다시 설정: 1. Post 22 편집 화면에서 "Tech Blog" 카테고리 체크 해제 2. 저장 3. 다시 "Tech Blog" 카테고리 체크 4. 저장 5. Revalidate API 호출: ``` https://www.planitai.co.jp/api/revalidate?secret=LWCTd22HKmCa8uNqOvaoTYlXoNONFVlhx ``` ### 6. WordPress 캐싱 플러그인 확인 WordPress 플러그인 확인: - W3 Total Cache - WP Super Cache - Redis Object Cache - 기타 캐싱 플러그인 캐시 플러그인이 있다면: 1. 플러그인 설정에서 캐시 전체 삭제 2. Revalidate API 재호출 ## 해결 방법 (우선순위순) ### 방법 1: WordPress에서 Post 22 재발행 (권장) 1. WordPress Admin에서 Post 22 열기 2. Featured Image 추가 (없다면) 3. "Sticky Post" 옵션 해제 확인 4. Visibility = "Public" 확인 5. 카테고리 "Tech Blog" 재설정 6. **"Update" (또는 "Publish") 버튼 클릭** 7. Revalidate API 호출 ### 방법 2: WordPress REST API 직접 테스트 터미널에서 실행: ```bash # Post 22가 포함되는지 확인 curl "https://2025032623012012057904.onamaeweb.jp/blog/wp-json/wp/v2/posts?per_page=100" | jq '.[].id' # Post 22 개별 조회 curl "https://2025032623012012057904.onamaeweb.jp/blog/wp-json/wp/v2/posts/22" | jq '.id, .status, .title.rendered' ``` ### 방법 3: WordPress 플러그인 일시 비활성화 테스트 1. 모든 WordPress 플러그인 일시 비활성화 2. REST API 다시 확인 3. 문제가 해결되면 플러그인 하나씩 활성화하며 원인 찾기 ## 주요 파일 참조 - `/app/api/revalidate/route.ts` - 캐시 무효화 API (정상 작동 중) - `/app/blogs/page.tsx:80-82` - 테크블로그 페이지 필터링 - `/lib/api.ts:223-266` - WordPress API 데이터 가져오기 - `/lib/api.ts:76-95` - 서브카테고리 감지 로직 ## 결론 **문제:** Post 22가 WordPress REST API 목록 쿼리에서 반환되지 않음 **원인:** WordPress 설정 문제 (Sticky Post, Visibility, Featured Image 등) **해결:** WordPress Admin에서 Post 22 설정 확인 및 재발행 필요 **Revalidate API는 정상 작동 중**이며, WordPress API가 Post 22를 반환하기 시작하면 자동으로 웹사이트에 표시됩니다.