발행한 글 중에서 제목에 특정 키워드가 포함된 모든 글들의 제목을 추출하고 싶은 경우가 있을 수 있습니다. 예를 들어, 글 개수가 10000개가 넘는 사이트에서 특정 단어나 문구가 포함된 모든 글을 엑셀 형식으로 추출하고 싶은 경우 MySQL 쿼리를 통해 글 제목 리스트를 추출할 수 있습니다.
워드프레스에서 제목에 특정 키워드가 포함된 글 제목 추출하기
여러 가지 방법이 있을 수 있는데, MySQL 쿼리를 통해 특정 조건에 해당하는 글 제목을 추추할 수 있습니다. MySQL 문법에 대해 잘 모르는 경우 wpDataTables 플러그인을 사용하면 정교하게 조건을 만들어 MySQL 쿼리문을 만들 수 있습니다.
이 플러그인은 특히 DB 작업이 빈번한 사용자들에게 유용합니다. 가령 커스텀 테이블을 만들고 해당 테이블 데이터를 프런트엔드에 표시하고 싶은 경우 이 플러그인으로 쉽게 구현이 가능합니다.
wpDataTables는 다른 워드프레스 플러그인에 비해 가격이 비싼 편입니다. 하지만 저렴하지 않은 가격에도 불구하고 21,000개 이상 판매되었습니다.
저도 이 플러그인을 구입했는데요, DB 작업 시에 가끔 유용하게 활용하고 있습니다.
wpDataTables 플러그인을 사용하여 특정 키워드가 포함된 워드프레스 글 제목 추출하기
이 플러그인을 사용하여 직접 프런트엔드에 결과를 표시하고 엑셀이나 CSV로 다운로드할 수 있습니다. 또는, 플러그인을 통해 만들어진 MySQL 쿼리문을 복사하여 phpMyAdmin에서 실행할 수도 있습니다.
먼저 워드프레스 알림판에서 wpDataTables > Create a Table을 클릭하고 Generate a query to the WordPress database를 선택합니다.
커스텀 테이블에서 작업하는 경우에는 Generate a query to the MySQL database를 선택할 수 있습니다.
표시할 DB 테이블 데이터를 선택하고 아래의 Add condition을 클릭하여 조건을 추가합니다.
예를 들어, 제목에 '플러그인'이라는 단어가 포함되고 글 상태가 '공개'인 글 목록을 추출하려는 경우 다음과 같이 조건을 지정할 수 있습니다.
조건은 다양하게 지정이 가능합니다. 예를 들어, 특정 날짜 이전 또는 특정 날짜 이후의 글만을 추출하는 것도 가능합니다. 위의 예시에서, '플러그인' 대신 '워드프레스 프러그인'처럼 두 단어 이상의 문구로도 지정할 수 있습니다.
하단의 Next를 클릭합니다.
그러면 결과를 미리 볼 수 있습니다. 기대한 결과를 출력하지 않는 경우에는 Previous 버튼을 눌러 이전 페이지로 돌아가서 다시 조건을 지정하도록 합니다.
이 미리보기 페이지에서는 MySQL 쿼리문도 확인할 수 있습니다.
제목에 특정 키워드가 들어가는 발행된 모든 글 제목을 추출하려면 다음과 같은 MySQL 쿼리문을 이용할 수 있습니다.
// Extract WordPress Posts titles with a specific keyword
SELECT posts_post.ID AS post_ID,
posts_post.post_date AS post_post_date,
posts_post.post_title AS post_post_title,
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_title LIKE '%YOUR_KEYWORD_HERE%'
AND posts_post.post_status = 'publish'
AND posts_post.post_type = 'post'
상황에 맞게 위의 코드를 적절히 응용하시기 바랍니다.
Create the table 버튼을 클릭하면 테이블(표)이 생성됩니다.
숏코드를 복사하여 해당 결과를 표시할 페이지에 붙여넣기 하도록 합니다.
프런트엔드에서 결과를 확인할 수 있습니다.
Excel, CSV 아이콘을 클릭하여 엑셀이나 CSV 파일로 결과를 저장할 수 있습니다.
PHP로 DB 데이터를 추출하여 표시하기
PHP로 DB 데이터를 추출하여 표시할 수 있습니다. 다음은 특정 단어가 포함된 글 목록을 표시하는 코드 예시입니다.
<?php
$query = new WP_Query( 's=keyword' );
if ($query->have_posts()){
while ( $query->have_posts() ) { $query->the_post();
echo '<h2>';
the_title();
echo '</h2>';
the_content();
} //end while
}
출처: Find all Wordpress posts that contain a certain word (특정 단어가 포함된 모든 워드프레스 포스트 찾기)
물론 wpDataTables를 사용하여 쉽게 본문에 특정 단어가 포함된 글 목록을 추출할 수 있습니다.
마치며
이상으로 wpDataTables 플러그인을 사용하여 특정 키워드가 포함된 워드프레스 글 목록을 추출하는 방법에 대하여 살펴보았습니다.
DB 작업이 많거나 MySQL 문법을 공부했지만 실제로 응용하는 데 어려움을 겪는 경우 이 플러그인을 유용하게 활용할 수 있습니다.
참고
https://avada.tistory.com/2397