워드프레스로 게시물 목록 불러오기 (GET 요청 활용)
웹사이트를 구축할 때 가장 쉬우면서도 유연하게 CMS와 백엔드를 구성할 수 있는 방법 중 하나가 워드프레스라고 생각한다.기본적인 관리 UI도 잘 되어 있고, 무엇보다 REST API를 통해 데이터를 쉽게 가져오고 다룰 수 있어서 프론트엔드는 내가 원하는 대로 자유롭게 만들 수 있다.그래서 이번에 워드프레스 REST API를 이용해서 내가 원하는 스타일의 웹사이트를 직접 만들어보려고 한다.이 과정을 정리해서 블로그에 시리즈로 기록해보려고 하고,이 글들이 나처럼 프론트 중심으로 작업을 하면서 CMS가 필요했던 누군가에게 작은 도움이 되면 좋겠다.기록은 복잡하게 쓰지 않고, 최대한 내가 생각한 흐름, 개발을 진행한 순서대로 정리해볼 생각이다.
첫 번째는 제일 기본적인 내용부터 시작한다.워드프레스에서 REST API를 통해 게시물 데이터를 가져와서 웹사이트에 표시하는 방식이다.
워드프레스는 자체적으로 REST API를 제공한다.따로 플러그인 설치 안 해도 기본적으로 작동하고, 브라우저에서 주소만 입력해도 JSON 데이터를 확인할 수 있다.
예를 들어 워드프레스 주소가 https://example.com이라면, 게시물 리스트는 아래 주소에서 확인할 수 있다:
https://example.com/wp-json/wp/v2/posts
이 URL로 들어가보면 게시물 데이터가 JSON 형식으로 쭉 나온다.프론트엔드에서는 이 데이터를 fetch 같은 걸로 불러오면 끝이다.
아래는 간단하게 만든 HTML + JavaScript 예제다.워드프레스에서 게시물을 가져와서, 제목이랑 요약을 화면에 보여주는 방식으로 만들었다.
HTML (index.html)
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>워드프레스 게시물 불러오기</title> </head> <body> <h1>최신 게시물</h1> <div id="post-container"></div> <script src="main.js"></script> </body> </html>
JavaScript (main.js)
const apiURL = 'https://example.com/wp-json/wp/v2/posts'; fetch(apiURL) .then(res => res.json()) .then(posts => { const container = document.getElementById('post-container'); posts.forEach(post => { const el = document.createElement('div'); el.innerHTML = ` <h2>${post.title.rendered}</h2> <p>${post.excerpt.rendered}</p> <a href="${post.link}" target="_blank">원문 보기</a> <hr> `; container.appendChild(el); }); }) .catch(err => { console.error('에러 발생:', err); });
참고로 워드프레스는 제목이나 내용 같은 텍스트를 HTML로 감싸서 주기 때문에, title.rendered, excerpt.rendered 같은 필드를 사용해야 한다.이걸 그대로 innerHTML에 넣어주면 된다.
워드프레스 관리자 페이지에서 작성한 게시물(좌)을 나의 웹(우)에 그대로 가져와 사용할 수 있게 된다.