>  기사  >  CMS 튜토리얼  >  WordPress에서 테마 개발을 위해 후크를 사용할 때 무한 루프를 방지하는 방법

WordPress에서 테마 개발을 위해 후크를 사용할 때 무한 루프를 방지하는 방법

藏色散人
藏色散人앞으로
2021-04-30 10:07:151980검색

다음 튜토리얼 칼럼인 WordPress에서는 WordPress에서 테마 개발을 위해 Hooks를 사용할 때 무한 루프를 피하는 방법을 소개합니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!

WordPress에서 테마 개발을 위해 후크를 사용할 때 무한 루프를 방지하는 방법

WordPress를 개발할 때 기사나 카테고리를 업데이트할 때 추가 데이터를 추가하기 위해 save_post 또는 create_post_tag와 같은 후크를 사용하는 경우가 많습니다. 이러한 후크는 타이밍을 트리거합니다. 데이터를 릴리스하거나 업데이트하는데 제대로 처리되지 않으면 무한 루프가 발생하여 데이터 업데이트 시 무한 루프가 발생합니다.

예를 들어 기사를 저장할 때 save_post 후크에 함수를 걸어야 합니다. 이 함수의 목적은 기사 제목을 수정하고 기사 제목 앞에 작성자 이름을 추가하는 것입니다. wp_update_post 함수를 호출하는 것입니다. 샘플 코드는 다음과 같습니다.

add_action('save_post', 'wprs_update_post');
function wprs_update_post($post_id)
{
    $title = get_the_title($post_id);
    $title = "一刀:" . $title;

    $args = [
        'ID'         => $post_id,
        'post_title' => $title,
    ];
    
    wp_update_post($args);
}

위 코드에서는 wp_update_post 함수 호출 과정에서 "save_post" 후크가 발생합니다. "save_post" 후크를 통해 wp_update_post 함수를 호출합니다. 이 함수에서는 "save_post" 후크도 실행됩니다. 그 결과, 프로그램은 지칠 줄 모르고 계속해서 운영되었습니다.

경험이 많은 프로그래머라면 이 문제를 쉽게 발견할 수 있지만, 컴퓨터는 이것이 무한 루프라는 사실을 모릅니다. 결국 컴퓨터는 그저 생각이 없는 기계일 뿐이라고 비난할 수는 없습니다. 우리가 할 수 있는 일은 개발 과정에서 무한 루프가 발생하지 않도록 최대한 주의를 기울이는 것입니다.

그럼 WordPress에서 이 무한 루프를 해결하는 방법은 무엇일까요? 사실 방법은 매우 간단합니다.

워드프레스에서 무한 루프를 피하는 방법

위의 코드를 약간 수정하면 이 무한 루프를 완벽하게 피할 수 있습니다. 다음은 위의 무한 루프 코드와 비교하여 두 줄만 추가한 코드입니다.

add_action('save_post', 'wprs_update_post');
function wprs_update_post($post_id)
{
   // 获取文章标题并在文章标题前面加上作者
    $title = get_the_title($post_id);
    $title = "一刀:" . $title;

    $args = [
        'ID'         => $post_id,
        'post_title' => $title,
    ];
    
    // 更新文章
    remove_action('save_post', 'wprs_update_post');
    wp_update_post($args);
    add_action('save_post', 'wprs_update_post');
}

원리는 매우 간단합니다. "wp_update_post" 함수를 실행하기 전에 먼저 "save_post" 후크에 걸려 무한 루프를 발생시키는 함수를 제거하여 "wprs_update_post" 함수가 반복적으로 실행되지 않도록 합니다. 기사를 업데이트한 후 후속 사용을 위해 이 후크를 마운트합니다.

워드프레스 개발 중 무한 루프 문제가 발생하는 경우, 무한 루프 문제를 일으키지 않고 필요한 기능을 구현할 수 있도록 위의 코드를 참고하여 수정하시면 좋을 것 같습니다.

위 내용은 WordPress에서 테마 개발을 위해 후크를 사용할 때 무한 루프를 방지하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제