키 테이크 아웃
WordPress Cron은 페이지를로드 할 때 실행되는 WordPress 사이트에서 작업을 예약 할 수있는 기능 세트입니다. Unix의 CRON과 항상 새로운 작업을 찾고있는 것은 아니기 때문에 페이지로드시 작업을 실행합니다. .
예약 할 수있는 두 가지 유형의 CRON 이벤트가 있습니다. 단일 이벤트는 일정 조정 될 때까지 한 번 그리고 다시는 실행되지 않습니다. 두 유형 모두 CRON에 등록 해야하는 맞춤형 '액션'을 작성해야합니다.
플러그인을 사용할 때는 플러그인이 비활성화되거나 삭제 된 후에도 WordPress가 이벤트를 계속 실행하려고하므로 스케일이 이벤트가 필수적입니다. 이벤트를 예약하지 않으려면 훅의 이름과 Cron Run의 다음 예정된 시간을 알아야합니다.
Custom Cron 간격은 CRON_SCHEDULES 필터에 연결하고 사용자 정의 간격을 추가하여 설정할 수 있습니다. CRON을 사용하여 이벤트를 예약 할 때 사용될 수 있습니다
WordPress Cron은 나와 같이 WordPress와 함께 일하는 데 많은 시간을 소비하는 경우 배우고 이해하고 싶은 가장 유용한 기능 중 하나입니다.
모든 CMS에는 엄격한 일정에서 특정 기능을 실행할 수있는 것이 필수적이며 WordPress는이 과정이 매우 간단하고 거의 손쉬운 기능을하는 데 도움이되는 일련의 함수를 가지고 있습니다. - .
이 기사에서는 다음과 같은 WordPress Cron 기능을 다룰 것입니다.
WordPress Cron은 일반 Cron과 어떻게 다릅니 까?
<a> 반복 이벤트 일정
</a><a> 단일 이벤트 일정
<ed> 이벤트를 예약하지 않음
<custom> 사용자 정의 Cron 간격 지정 <li>
</li>
<on> cron이란 무엇입니까?
<familiar> 당신은 아마도 'cron'이라는 용어가 유니스 시스템의 시간 기반 스케줄러와 관련이 있고 WordPress 'cron이 다르기 때문에 아마도 익숙 할 것입니다. 그 뒤에있는 주요 아이디어는 동일합니다. <li>
<of> WordPress 시스템을 어떻게 사용하는지에 대한 몇 가지 예는 내부적으로 Cron 시스템을 테마 및 플러그인 업데이트를 확인하고 게시 할 게시물이 게시 될 수 있는지 확인하고 있습니다.
<press> WordPress Cron은 어떻게 다릅니 까?
<familiar> 유닉스의 Cron에 익숙하다면 WordPress 'Cron이 항상 새로운 작업을 찾고 있으며 올 때까지 실행한다고 생각할 것입니다. 이것은 진실과는 거리가 멀고 왜 곧 왜 설명하겠습니다. </familiar></press></of>
</li>
<cr> WordPress 'Cron은 페이지가 프론트 엔드 또는 백엔드 페이지이든 페이지를로드 할 때 실행됩니다. 다시 말해, 웹 사이트에 페이지가로드되면 WordPress는 실행 및 실행 해야하는 작업이나 이벤트가 있는지 확인합니다. 이것이 이상적이지 않다고 생각한다면, 당신은 절대적으로 옳습니다. </cr></familiar></on></custom></ed></a></press></run>
</ul>
<to> 트래픽이 너무 많지 않은 웹 사이트가 있고 정확한 시간에 실행 해야하는 작업이있는 경우 WordPress는 누군가가 귀하의 웹 사이트를 방문 할 때까지 과제를 알지 못합니다. 웹 사이트를 크롤링하는 검색 엔진 봇이더라도. <p>
<events> cron 로 이벤트 일정
<fl> 몇 줄의 코드로 예약 할 수있는 두 가지 Cron 이벤트가 있습니다.
<h2>
<run> 단일 이벤트 - 다시 일정이 변경 될 때까지 한 번만 실행하십시오.
<events> 반복 이벤트-일정에 따라 실행되며 시간 간격을 사용하여 무기한 재발로 설정됩니다.
</events></run>
</h2>
<a> 반복 이벤트 일정
</a><a> 반복 이벤트를 예약하려면 CRON에도 등록 해야하는 사용자 정의 '액션'을 만들어야합니다. CRON이 실행되면 이전에 만든 사용자 정의 '액션'에 첨부 된 기능이 실행됩니다.
</a><a> 매일 사후 개정을 삭제할 예제를 살펴 보겠습니다.
<our> 먼저 우리는 고리가 Cron에 의해 호출 될 때 실행하려는 기능을 첨부 할 맞춤형 '액션'을 만듭니다.
<p>
<ing> 반복적 인 이벤트를 예약하려면 WP_SCHEDULE_EVENT ($ timestamp, $ repurrence, $ hook, $ args) 함수를 사용합니다.
</ing></p>
<amp> $ timestamp - (정수) (필수) 이벤트가 처음 발생하기를 원하는 시간입니다. 이것은 Unix 타임 스탬프 형식이어야합니다. WP CRON은 현지 시간이 아닌 UTC/GMT 시간을 사용합니다. WordPress에서 항상 GMT 인 Time ()을 사용하십시오. (current_time ( 'timestamp')은 WordPress의 현지 시간입니다.)
<ence ence> $ 재발 - (문자열) (필수) 이벤트가 얼마나 자주 재발 해야하는지. 유효한 값은‘시간별’,‘Twicedaily’및‘Daily’입니다. 나중에 자신의 시간 간격을 만드는 방법을 볼 수 있습니다. <ul>
$ hook - (string) (필수) 실행할 액션 후크의 이름.
$ args - (배열) (선택 사항) Hook 함수로 전달되는 인수 (들).
<li>
<sure> 먼저 우리는 이벤트가 이전에 예정되어 있지 않은지 확인하고 그렇지 않은 경우 계속해서 예약합니다. </sure>
</li>.
<li>
<can>이 코드 스 니펫을 동작에 추가 할 수도 있습니다. 플러그인 작가 인 경우 플러그인 옵션 페이지를 처음 방문 할 때 예정된 이벤트를 설정할 수 있습니다. 훨씬 간단한 예를 들어, 우리는 그것을 WordPress 'Init Action에 묶을 것입니다.
</can>
</li>
<know> 이제 반복적 인 이벤트를 예약하는 방법을 알았으므로 재조정 될 때까지 다시는 실행되지 않는 단일 이벤트를 만드는 것을 살펴 보겠습니다.
<a> 단일 이벤트 일정
<name> 이름에서 알 수 있듯이 단일 이벤트는 한 번 실행되는 이벤트입니다. 이 단일 이벤트는 필요한 경우 다시 조정할 수 있습니다. <h2>
<it> 그 배후의 개념은 되풀이되는 사건과 동일합니다. 먼저 서버에서 실행될 때 Cron이 호출하는 사용자 정의 후크를 등록합니다. Cron이 후크를 호출하면 기능이 실행되며 기본적으로 작업을 수행하는 방식입니다. 예를 들어, 우리는 게시물의 만료 날짜를 설정할 것입니다. 게시물은 게시 후 30 일 만에 만료됩니다. 우리는 게시물이 게시되고 카운트 다운이 시작 되 자마자 단일 이벤트를 예약 할 수 있도록 Publish_Post에 연결될 것입니다. <p>.
<function> 30 일 후에 게시물을 삭제하는 함수를 설정합니다. </function></p>
<p>
<right> 꽤 단순합니까? 이제 게시물이 실제로 게시되면 이벤트를 예약해야합니다. 이 작업을 수행하려면 3 인수를 취하는 WP_SCHEDULE_SILLE_EVENT ($ timestamp, $ hook, $ args) 함수를 사용해야합니다.
</right></p>
<amp amp> $ 타임 스탬프 - (정수) (필수) 이벤트가 발생할 시간입니다. 이것은 Unix 타임 스탬프 형식이어야합니다
$ hook - (string) (필수) 실행할 액션 후크의 이름.
$ args - (배열) (선택 사항) 훅 함수로 전달되는 인수.
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><span><span><?php
</span></span><span><span>// delete_post_revisions will be call when the Cron is executed
</span></span><span><span>add_action( 'delete_post_revisions', 'delete_all_post_revisions' );
</span></span><span>
</span><span><span>// This function will run once the 'delete_post_revisions' is called
</span></span><span><span>function delete_all_post_revisions() {
</span></span><span>
</span><span> <span>$args = array(
</span></span><span> <span>'post_type' => 'post',
</span></span><span> <span>'posts_per_page' => -1,
</span></span><span> <span>// We don't need anything else other than the Post IDs
</span></span><span> <span>'fields' => 'ids',
</span></span><span> <span>'cache_results' => false,
</span></span><span> <span>'no_found_rows' => true
</span></span><span> <span>);
</span></span><span>
</span><span> <span>$posts = new WP_Query( $args );
</span></span><span>
</span><span> <span>// Cycle through each Post ID
</span></span><span> <span>foreach( (array)$posts->posts as $post_id ) {
</span></span><span>
</span><span> <span>// Check for possible revisions
</span></span><span> <span>$revisions = wp_get_post_revisions( $post_id, array( 'fields' => 'ids' ) );
</span></span><span>
</span><span> <span>// If we got some revisions back from wp_get_post_revisions
</span></span><span> <span>if( is_array( $revisions ) && count( $revisions ) >= 1 ) {
</span></span><span>
</span><span> <span>foreach( $revisions as $revision_id ) {
</span></span><span>
</span><span> <span>// Do a final check on the Revisions
</span></span><span> <span>if( wp_is_post_revision( $revision_id ) ) {
</span></span><span> <span>// Delete the actual post revision
</span></span><span> <span>wp_delete_post_revision( $revision_id);
</span></span><span> <span>}
</span></span><span> <span>}
</span></span><span> <span>}
</span></span><span> <span>}
</span></span><span><span>}</span></span>로그인 후 복사
로그인 후 복사
여기 에이 모든 행동과 고리가 어떻게 구성되는지 간단히 살펴보십시오.
우리는 WordPress가 우리의 삶을 편하게하기 위해 마련된 시간 상수를 사용하고 있습니다. 이러한 상수에 대한 자세한 내용은 "시간 상수 사용"으로 이동할 수 있지만 다음은 빠른 개요가 있습니다.
<_> minute_in_seconds = 60 (초)
<_> Hour_in_seconds = 60 * minute_in_seconds
<_> day_in_seconds = 24 * hour_in_seconds
<_ _ week_in_seconds="7" day_in_seconds>
<_ _> year_in_seconds = 365 * day_in_seconds
-
예술화되지 않은 이벤트
이제 반복 및 단일 이벤트를 예약하는 방법을 알았으므로 이러한 이벤트를 예약하는 방법을 아는 것이 유용 할 것입니다.
당신은 궁금 할 것입니다. 왜 이벤트를 예약하지 않으시겠습니까? 특히 플러그인에 정렬 일정 이벤트를 포함하는 경우에 대한 좋은 이유가 있습니다.
-
크론은 wp_options 테이블에 저장되고 단순히 플러그인을 비활성화하고 삭제하여 저장됩니다. 플러그인을 더 이상 사용할 수 없지만 WordPress는 여전히 이벤트를 실행하려고합니다. 그렇게 말하면, 플러그인 또는 사용자 정의 구현 내에서 제대로 예약되지 않은 이벤트를 확인하십시오.
스케일되지 않은 CRON 이벤트는 비교적 쉽습니다. 훅의 이름과 특정 CRON이 실행 해야하는 다음 예정된 시간은 언제입니까? 우리는 WP_NEXT_SCHEDULED ()를 사용하여 다음 발생이 언제 발생하는지 확인하고 WP_UNSCHEDULE_EVENT ().
첫 번째 예를 고려할 때, 우리는 다음과 같은 이벤트를 예약하지 않을 것입니다.
CRON 간격을 사용자 정의
CRON을 사용하여 이벤트를 예약 할 때 사용할 수있는 사용자 정의 CRON 간격을 설정할 수 있습니다. 그렇게하려면 CRON_SCHEDULES 필터에 연결하고 우리 자신의 추가 만 추가해야합니다. 10 분마다 실행될 맞춤형 간격을 추가하는 것을 살펴 보겠습니다. -
<span><span><?php
</span></span><span><span>// delete_post_revisions will be call when the Cron is executed
</span></span><span><span>add_action( 'delete_post_revisions', 'delete_all_post_revisions' );
</span></span><span>
</span><span><span>// This function will run once the 'delete_post_revisions' is called
</span></span><span><span>function delete_all_post_revisions() {
</span></span><span>
</span><span> <span>$args = array(
</span></span><span> <span>'post_type' => 'post',
</span></span><span> <span>'posts_per_page' => -1,
</span></span><span> <span>// We don't need anything else other than the Post IDs
</span></span><span> <span>'fields' => 'ids',
</span></span><span> <span>'cache_results' => false,
</span></span><span> <span>'no_found_rows' => true
</span></span><span> <span>);
</span></span><span>
</span><span> <span>$posts = new WP_Query( $args );
</span></span><span>
</span><span> <span>// Cycle through each Post ID
</span></span><span> <span>foreach( (array)$posts->posts as $post_id ) {
</span></span><span>
</span><span> <span>// Check for possible revisions
</span></span><span> <span>$revisions = wp_get_post_revisions( $post_id, array( 'fields' => 'ids' ) );
</span></span><span>
</span><span> <span>// If we got some revisions back from wp_get_post_revisions
</span></span><span> <span>if( is_array( $revisions ) && count( $revisions ) >= 1 ) {
</span></span><span>
</span><span> <span>foreach( $revisions as $revision_id ) {
</span></span><span>
</span><span> <span>// Do a final check on the Revisions
</span></span><span> <span>if( wp_is_post_revision( $revision_id ) ) {
</span></span><span> <span>// Delete the actual post revision
</span></span><span> <span>wp_delete_post_revision( $revision_id);
</span></span><span> <span>}
</span></span><span> <span>}
</span></span><span> <span>}
</span></span><span> <span>}
</span></span><span><span>}</span></span>
로그인 후 복사
결론
WordPress 'Cron을 사용하는 것은 더 쉬울 수 없으며 매우 훌륭하고 흥미로운 도구로 플러그인을보다 강력하게 만드는 데 도움이되는 도구입니다. 이러한 모든 기능을 배우고 실제 응용 프로그램을 통해 실천하는 것이 행사를 예약하기위한 WordPress 'Cron을 마스터하는 가장 좋은 방법입니다.
WordPress Cron 마스터 에 대해 자주 묻는 질문
WP_SCHEDULE_EVENT와 WP_SCHEDULE_SILLE_EVENT의 차이점은 무엇입니까?
두 기능은 WordPress에서 이벤트를 예약하는 데 사용됩니다. WP_SCHEDULE_EVENT 함수는 반복적 인 이벤트를 예약하는 데 사용됩니다. 즉, 시간당, 매일 또는 매일 두 번 지정한 규칙적인 간격으로 실행됩니다. 반면에 WP_SCHEDULE_SILLE_EVENT는 향후 특정 시간에 실행되는 일회성 이벤트를 예약하는 데 사용됩니다. 이벤트가 한 번 또는 반복적으로 실행되기를 원하는지 여부에 따라 올바른 기능을 선택하는 것이 중요합니다.
왜 내 WordPress Cron 작업이 작동하지 않는 이유는 무엇입니까?
WordPress Cron이 몇 가지 이유가있을 수 있습니다. 직업이 작동하지 않습니다. 일반적인 문제 중 하나는 서버의 시간 설정에 문제가 있습니다. 서버의 시간이 올바르게 설정되지 않으면 스케줄링 문제가 발생할 수 있습니다. 또 다른 가능한 문제는 플러그인이나 테마와 충돌하는 것입니다. 일부 플러그인이나 테마는 WordPress Cron 시스템을 방해하여 오작동을 일으킬 수 있습니다. 코드에 오류가있을 수도 있습니다. WordPress Cron 작업에 문제가있는 경우 코드를 철저히 테스트하고 서버 설정을 확인하십시오. 내 WordPress Cron 작업이 작동하는지 테스트 할 수 있습니까?
몇 가지가 있습니다. WordPress Cron 작업이 작동하는지 테스트하는 방법. 한 가지 방법은 WP Crontrol과 같은 플러그인을 사용하여 WP-CRON 시스템에서 일어나는 일을보고 제어 할 수 있습니다. 또 다른 방법은 디버깅 도구를 사용하는 것입니다. wp-config.php 파일에서 wp_debug를 활성화하면 CRON 작업이 실행될 때 발생하는 오류가 발생할 수 있습니다. PHP의 Error_Log 함수를 사용하여 파일에 오류를 기록 할 수도 있습니다.
특정 시간에 실행되도록 WordPress Cron 작업을 예약 할 수 있습니까? 특정 시간에 실행하는 직업. WP_SCHEDULE_EVENT 함수를 사용하면 이벤트가 처음 발생하는 시간과 재발 해야하는 간격을 지정할 수 있습니다. WP_SCHEDULE_SILLE_EVENT 함수를 사용하면 이벤트가 발생할 때 정확한 시간을 지정할 수 있습니다. WordPress Cron 이벤트를 변경할 수있는 방법
WP_UNSCHEDULE_EVENT 함수를 사용하여 WordPress Cron 이벤트를 변경할 수 있습니다. 이 기능에는 두 가지 매개 변수가 필요합니다. 이벤트의 타임 스탬프와 액션 후크는 변경되지 않은 함수에 대한 액션 후크가 필요합니다. 이 기능을 호출하면 지정된 이벤트가 더 이상 발생하지 않습니다. WordPress Cron Action Hook이란 무엇입니까?
WordPress Cron Action Hook는 CRON 이벤트의 고유 식별자입니다. 이벤트를 예약하면 액션 후크와 연관시킵니다. 그런 다음이 액션 후크에 함수를 첨부 할 수 있으며 이벤트가 실행되면 실행됩니다. 이를 통해 특정 시간에 특정 작업을 수행 할 수 있습니다. WordPress Cron을 사용하여 게시물을 예약 할 수 있습니까?
예, WordPress Cron을 사용하여 게시물을 예약 할 수 있습니다. WordPress 자체는 CRON 작업을 사용하여 예정된 게시물을 처리합니다. 향후 날짜에 게시 할 게시물을 설정하면 WordPress는 지정된 시간에 게시물을 게시하기 위해 Cron 작업을 예약합니다.
예정된 모든 WordPress Cron 작업을 어떻게 볼 수 있습니까?
WP Crontrol과 같은 플러그인을 사용하여 예정된 모든 WordPress Cron 작업을 볼 수 있습니다. 이 플러그인은 예정된 모든 이벤트, 간격 및 다음 실행 시간을 볼 수있는 사용자 친화적 인 인터페이스를 제공합니다. 또한 Cron 작업을 추가, 편집 또는 삭제하는 데 사용될 수도 있습니다. WordPress Cron 작업을 수동으로 실행할 수 있습니까?
예, WordPress Cron 작업을 수동으로 실행할 수 있습니다. WP Crontrol과 같은 플러그인을 사용 하여이 작업을 수행하면 즉시 CRON 이벤트를 실행할 수 있습니다. 이것은 테스트 및 디버깅 목적에 유용 할 수 있습니다.
WordPress Cron 작업과 실제 Cron 작업의 차이점은 무엇입니까?
WordPress Cron 작업은 의사 크론 작업입니다. 서버 수준에서 실행되지 않기 때문에 실제 Cron 작업이 아닙니다. 대신 WordPress 사이트에 페이지가로드되면 실행됩니다. 반면에 실제 Cron 작업은 서버 수준에서 예정된 작업입니다. 누군가가 귀하의 사이트를 방문하는지 여부에 관계없이 특정 시간에 실행됩니다. WordPress Cron 작업은 설정 및 사용이 더 쉽지만 실제 Cron 작업은보다 신뢰할 수 있고 정확할 수 있습니다.
위 내용은 이벤트 예약을위한 WordPress Cron 마스터 링의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!