-
목차
⏱ WP-Cron이 뭐지? 서버 크론과는 다르다!
워드프레스는 자체적으로 크론(Cron) 시스템을 가지고 있습니다.
하지만 서버에서 시간 기준으로 실행되는 일반적인 크론과는 다릅니다.📌 WP-Cron은 페이지 로딩 시 트리거됩니다.
즉, 누군가 사이트를 방문해야 예약 작업이 실행됩니다.
✅ WP-Cron vs 서버 Cron 비교
항목WP-Cron리눅스 Cron실행 조건 페이지 로딩 시 지정 시간 정확히 실행 사용 환경 워드프레스 내부 서버 OS 레벨 정확성 사용자가 없으면 미실행 가능 항상 정확하게 실행 사용 목적 게시글 예약 발행, 플러그인 작업, 자동 백업 등 로그 정리, 서버 스크립트 실행 등
⚙️ WP-Cron 기본 동작 구조
- 방문자가 페이지 요청
- 워드프레스가 예약된 작업이 있는지 확인
- 예약 시간이 지나면 → 등록된 콜백 함수 실행
🧪 예약 작업 등록하기 – wp_schedule_event()
php복사편집// 매시간 실행되는 이벤트 등록 add_action('my_hourly_event', 'my_hourly_callback'); if (!wp_next_scheduled('my_hourly_event')) { wp_schedule_event(time(), 'hourly', 'my_hourly_event'); } // 콜백 함수 function my_hourly_callback() { // 자동 이메일 전송, 로그 정리, 캐시 삭제 등 }📌 주기 옵션: hourly, twicedaily, daily
커스텀 주기도 추가 가능!
🔁 커스텀 주기 추가 – cron_schedules 필터
php복사편집add_filter('cron_schedules', 'my_custom_cron_interval'); function my_custom_cron_interval($schedules) { $schedules['every_15min'] = array( 'interval' => 900, 'display' => 'Every 15 Minutes' ); return $schedules; } // 등록 시 'every_15min' 사용 가능
❌ 예약 작업 삭제
php복사편집$timestamp = wp_next_scheduled('my_hourly_event'); wp_unschedule_event($timestamp, 'my_hourly_event');정기 작업 제거 시에는 반드시 unschedule 처리 필수!
🔍 예약된 작업 확인 – 플러그인 활용
추천 플러그인
- WP Crontrol
→ 예약된 이벤트 목록 확인, 수동 실행, 삭제까지 가능
📌 관리자 → 도구 → Cron Events 메뉴에서 관리 가능
💡 실전 활용 예시
자동화 목적실행 내용주기예약 포스트 발행 기본 기능 시스템 예약 자동 뉴스레터 전송 MailerLite API 호출 매일 캐시 정리 delete_transient() 호출 2시간마다 외부 API 데이터 동기화 JSON 호출 후 DB 저장 30분마다 유저 포인트 만료 조건 체크 후 소멸 처리 매일 자정
🔐 WP-Cron 보안과 성능 팁
- 고트래픽 사이트에서는 비효율적
→ 트래픽마다 크론 검사 → 퍼포먼스 저하 - 서버 크론으로 대체 권장 (고급 설정)
→ wp-config.php에 다음 코드 삽입
php복사편집define('DISABLE_WP_CRON', true);그리고 서버의 크론탭에 다음 명령어 등록:
✅ WP-Cron 설정 체크리스트
항목완료 여부wp_schedule_event()으로 예약 등록 ✅ / ❌ 콜백 함수에서 원하는 작업 수행 ✅ / ❌ WP Crontrol 등으로 등록 상태 확인 ✅ / ❌ 커스텀 주기 설정 완료 ✅ / ❌ 필요 시 서버 크론으로 전환 ✅ / ❌ '워드프레스' 카테고리의 다른 글
🔧 구텐베르크(Gutenberg)란? (4) 2025.04.27 🔐 워드프레스 REST API는 기본적으로 "오픈"되어 있다? (1) 2025.04.27 🧠 왜 사용자 권한 시스템이 중요한가? (0) 2025.04.27 🌐 멀티사이트(Multisite)란? (2) 2025.04.26 🧠 워드프레스는 "조건별로" 템플릿을 불러옵니다 (1) 2025.04.26 🧠 왜 직접 플러그인을 만들어야 할까? (2) 2025.04.25 🧠 왜 DB 구조를 이해해야 하는가? (2) 2025.04.25 🔄 AJAX가 필요한 이유 (1) 2025.04.25