워드프레스의 모든 글 URL을 추출하고 싶은 경우 이전 글에서 소개한 Export All URLs 플러그인을 사용할 수 있습니다. 이 플러그인을 사용할 경우 사이트 내의 모든 페이지 또는 글 URL 리스트를 추출할 수 있습니다.
이 플러그인을 사용할 때 오류가 발생하거나 특정 조건에 부합하는 글 리스트만을 원하는 경우에는 phpMyAdmin에서 MySQL 쿼리를 실행하여 원하는 데이터를 추출할 수 있습니다.
워드프레스 글 URL 리스트 추출하기
무료 플러그인인 Export All URLs 플러그인을 사용하면 워드프레스 사이트 내의 모든 페이지나 포스트(글) URL을 쉽게 추출할 수 있습니다. 이 플러그인으로 글 ID, 글 제목, 글 URL 및 카테고리를 내보낼 수 있습니다("모든 워드프레스 URL 내보내기 - Export All URLs 플러그인" 참고).
제목이나 본문에 특정 단어가 포함된 글만을 추출하거나 특정 카테고리 내의 글 목록을 원하는 경우에는 phpMyAdmin에서 쿼리문을 실행하여 원하는 데이터를 얻을 수 있습니다.
또한, Export All URLs를 실행했을 때 에러가 발생하는 경우가 있습니다. 글 개수가 많은 사이트나 멀티사이트 등에서 이 플러그인을 사용하여 데이터를 추출하려고 시도하면 "이 웹사이트에 치명적인 오류가 있습니다" 오류가 발생할 수 있습니다.
DB 관련 작업이 잦은 경우 wpDataTables 플러그인을 사용하면 편리합니다. 이 플러그인은 유료 플러그인으로 가격이 299달러로 제법 비싼 편이지만 프런트엔드에 엑셀이나 게시판 형식으로 데이터를 표시하려는 경우나 데이터베이스에서 데이터를 추출하려는 경우에 유용하게 활용할 수 있습니다.
wDataTable 플러그인을 사용하여 원하는 데이터를 추출하는 쿼리문을 만든 다음, phpMyAdmin에서 실행하여 데이터를 엑셀이나 CSV 파일로 저장할 수 있습니다. 이와 관련하여 "워드프레스에서 제목에 특정 키워드가 포함된 글 제목 추출하기" 글을 참고해보시기 바랍니다.
아래의 작업 실행 후 되돌릴 수 없으므로 반드시 데이터베이스(DB)를 백업한 후에 진행하시기 바랍니다(참고).
모든 글 URL을 추출하고 싶은 경우 다음과 같은 MySQL 쿼리문을 사용할 수 있습니다.
SELECT posts_post.guid AS post_guid
FROM wp_posts AS posts_post
WHERE 1=1
AND posts_post.post_status = 'publish'
AND posts_post.post_type = 'post'
포스트 제목과 URL을 함께 추출하려는 경우에는 다음과 같이 post_title 부분을 추가하면 됩니다.
SELECT posts_post.post_title AS post_post_title,
posts_post.guid AS post_guid
FROM wp_posts AS posts_post
WHERE 1=1
AND posts_post.post_status = 'publish'
AND posts_post.post_type = 'post'
다음 쿼리를 사용하면 글 URL 링크가 적용된 글 제목을 추출할 수 있습니다.
SELECT CONCAT('<a href="',posts_post.guid,'">',posts_post.post_title,'</a>') AS post_title_with_link_to_post
FROM wp_posts AS posts_post
WHERE 1=1
AND posts_post.post_status = 'publish'
AND posts_post.post_type = 'post'
제목에 특정 단어가 포함된 글만을 추출하고 싶은 경우에는 다음과 같은 쿼리문으로 시도해볼 수 있습니다.
SELECT posts_post.guid AS post_guid
FROM wp_posts AS posts_post
WHERE 1=1
AND posts_post.post_status = 'publish'
AND posts_post.post_title LIKE '%플러그인%'
AND posts_post.post_type = 'post'
특정 카테고리 내의 모든 글 목록을 추출하려는 경우에는 "MySQL Query to Retrieve Category from wp_posts" 문서에 제시된 코드를 응용할 수 있습니다.
SELECT *
FROM wp_posts
LEFT JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id)
LEFT JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id)
WHERE wp_term_taxonomy.term_id IN (307)
GROUP BY wp_posts.ID
MySQL 문법을 조금 알면 다양하게 응용이 가능합니다.
MySQL 쿼리문은 phpMyAdmin의 SQL 탭에 입력하여 실행하면 됩니다.
결과가 표시되면 내보내기 메뉴를 사용하여 결과를 CSV, CSV for MS Excel 문서 등으로 저장이 가능합니다.
phpMyAdmin에 접속하는 방법을 잘 모르는 경우에는 호스팅 업체에 문의하면 방법을 안내받을 수 있을 것입니다. 카페24의 경우에는 phpMyAdmin 서비스가 종료되었으므로 phpMyAdmin 툴을 설치한 후에 접속이 가능합니다. 가비아 등에서는 호스팅 업체 홈페이지에서 접속할 수 있습니다. 블루호스트 등 cPanel이 제공되는 환경에서는 cPanel에 접속하여 phpMyAdmin 툴에 접근할 수 있습니다.
마치며
워드프레스 내의 모든 페이지 또는 모든 글의 URL, 제목 등을 추출하는 방법에 대해 살펴보았습니다. 먼저는 플러그인으로 시도해보시고, 원하는 결과를 얻을 수 없거나 오류가 발생하는 경우에는 위에서 소개한 방법을 응용하여 데이터 추출을 시도해볼 수 있습니다.
댓글 남기기