워드프레스 글 발행 자동화 6강 : 최근 포스트 가져오기를 시작하겠습니다. 구글 SEO, 네이버, 다음 검색 최적화를 위해서는 내부 링크와 외부링크가 반드시 포함되어야 합니다. 글을 발행하는 주제와 연관된 최근 포스트를 가져오는 것도 도움이 되겠지요. 이 글에서는 파이썬을 이용해서 최근 포스트를 가져오는 방법에 대해서 알아보도록 하겠습니다.
목차
워드프레스 글 발행 자동화 시리즈
워드프레스 글 발행 자동화 2강 : 응용프로그램 비밀번호 설정
워드프레스 글 발행 자동화 4강 : Perplexity API 사용하기
워드프레스 글 발행 자동화 5강 : ChatGPT API 연동하기
워드프레스 글 발행 자동화 6강 : 최근 포스트 가져오기
자동화로 발행된 글이 궁금하면 아래 글을 먼저 확인하세요. 애드센스는 물론, 쿠팡 파트너스 링크, 또는 기타 어필리에이션 코드도 마음대로 넣을 수 있습니다. 내부 링크글도 추가해서 SEO 최적화 된 글을 발행하는데 도움이 됩니다. HTML 포맷이나 마크다운 포맷 등을 활용할 수도 있습니다-!
더 궁금한 게 있다면 오픈 채팅방에 참여하세요.
파이썬 라이브러리
- Library 는 requests 이외에는 필요치 않습니다.
import requests
최근 포스트 가져오기 위한 필요 요소들
- 웹사이트 주소를 아래 “URL주소” 위치에 적절히 넣습니다.
- http://[URL주소]/wp-json/wp/v2/posts
- 예시,
api_endpoint = f'https://iuinna.com/wp-json/wp/v2/posts'
- 카테고리를 지정합니다.
- 카테고리는 “번호” 로 지정해야합니다.
- 아래 이미지에서 가장 하단에서 확인할 수 있습니다.
- tag_id = [숫자] 를 확인하면 카테고리 번호를 확인할 수 있습니다.
- 게시하고자 하는 포스트의 개수를 설정합니다.
- POST_LIMT = 5
위 세가지를 파이썬 코드로 표현하면 다음과 같습니다.
api_endpoint = f'https://iuinna.com/wp-json/wp/v2/posts'
CATEGORY_ID = 74
POST_LIMIT = 5
전체 코드는 다음과 같습니다.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Tue Jan 28 09:45:10 2025
@author: kabin
"""
import requests
def retrieve_recent_post () :
# Replace with your target category ID
CATEGORY_ID = 74
# Number of posts to retrieve
POST_LIMIT = 5
# Construct the API endpoint
api_endpoint = f'https://iuinna.com/wp-json/wp/v2/posts'
# Define query parameters
params = {
'categories': CATEGORY_ID, # Filter by category ID
'per_page': POST_LIMIT, # Number of posts per page
'orderby': 'date', # Order by date
'order': 'desc' # Most recent first
}
recent_post = dict()
try:
# Make the GET request to the WordPress REST API
response = requests.get(api_endpoint, params=params)
# Check if the request was successful
response.raise_for_status()
# Parse the JSON response
posts = response.json()
# Check if posts are returned
if posts:
print(f"Latest {POST_LIMIT} Posts in Category ID {CATEGORY_ID}:\n")
for post in posts:
title = post.get('title', {}).get('rendered', 'No Title')
link = post.get('link', '#')
date = post.get('date', 'No Date')
#print(f"Title: {title}\nDate: {date}\nLink: {link}\n")
recent_post[title]=link
return recent_post
else:
print("No posts found in this category.")
except requests.exceptions.HTTPError as http_err:
print(f"HTTP error occurred: {http_err}") # HTTP error
except Exception as err:
print(f"An error occurred: {err}") # Other errors
print (retrieve_recent_post ())
최근 포스트 가져오기 결과
Latest 5 Posts in Category ID 74:
{‘트럼프 2기 취임식: 미국과 한국 경제에 미치는 5가지 영향’: ‘https://iuinna.com/%ed%8a%b8%eb%9f%bc%ed%94%84-2%ea%b8%b0-%ec%b7%a8%ec%9e%84%ec%8b%9d-%eb%af%b8%ea%b5%ad%ea%b3%bc-%ed%95%9c%ea%b5%ad-%ea%b2%bd%ec%a0%9c%ec%97%90-%eb%af%b8%ec%b9%98%eb%8a%94-5%ea%b0%80%ec%a7%80-%ec%98%81/’, ‘2025년 직장인 연말정산: 알아야 할 5가지 주요 사항’: ‘https://iuinna.com/2025%eb%85%84-%ec%a7%81%ec%9e%a5%ec%9d%b8-%ec%97%b0%eb%a7%90%ec%a0%95%ec%82%b0-%ec%95%8c%ec%95%84%ec%95%bc-%ed%95%a0-5%ea%b0%80%ec%a7%80-%ec%a3%bc%ec%9a%94-%ec%82%ac%ed%95%ad/’, ‘2024년 인스타그램 릴스를 활용한 마케팅 전략 5가지’: ‘https://iuinna.com/2024%eb%85%84-%ec%9d%b8%ec%8a%a4%ed%83%80%ea%b7%b8%eb%9e%a8-%eb%a6%b4%ec%8a%a4%eb%a5%bc-%ed%99%9c%ec%9a%a9%ed%95%9c-%eb%a7%88%ec%bc%80%ed%8c%85-%ec%a0%84%eb%9e%b5-5%ea%b0%80%ec%a7%80/’, ‘멜라니아 트럼프 여사: 독립적인 영부인의 삶과 최근 동향 5가지’: ‘https://iuinna.com/%eb%a9%9c%eb%9d%bc%eb%8b%88%ec%95%84-%ed%8a%b8%eb%9f%bc%ed%94%84-%ec%97%ac%ec%82%ac-%eb%8f%85%eb%a6%bd%ec%a0%81%ec%9d%b8-%ec%98%81%eb%b6%80%ec%9d%b8%ec%9d%98-%ec%82%b6%ea%b3%bc-%ec%b5%9c%ea%b7%bc/’, ‘2024년 GPT-4b의 5가지 주요 특징과 경제적 영향’: ‘https://iuinna.com/2024%eb%85%84-gpt-4b%ec%9d%98-5%ea%b0%80%ec%a7%80-%ec%a3%bc%ec%9a%94-%ed%8a%b9%ec%a7%95%ea%b3%bc-%ea%b2%bd%ec%a0%9c%ec%a0%81-%ec%98%81%ed%96%a5/’}
결과는 위와 같이 Dictionary 딕셔너리 형식으로 반환됩니다. 적절히 내 포스트에 추가할 수도 있습니다. 위 코드를 활용하면, 다른 사람의 워드프레스의 최근글들도 얼마든지 가져올 수 있겠습니다.
맺는글
워드프레스 글 발행 자동화 6강 : 최근 포스트 가져오기를 통해서 본인 블로그의 최신 글들을 가져와서 링크로 연동할 준비가 되었습니다. 기존 방식과 조합하면 할 수 있는 일들이 더 많아지겠지요? 경쟁 사이트의 포스트를 가져와서 최근 어떤 트렌드로 글을 발행하고 있는지 확인할 수도 있고, 내 글의 SEO 를 최적화 하기 위해서 활용할 수도 있고요. 관련 글을 지속적으로 발행할 수 있도록 하겠습니다. 즐거운 설 연휴 되세요-!
더 궁금하신 게 있다면 오픈카톡방으로 들어오셔서 질문하시면 답변드리도록 하겠습니다.