Bright Plugins가 WordPress 및 WooCommerce 플러그인을 인수하고 있습니다. 문의하기
상품 페이지

WordPress 훅, 액션, 필터 완벽 가이드

WordPress Hooks Actions Filters

“WordPress 훅, 액션, 필터 완벽 가이드”에 오신 것을 환영합니다. 방대한 WordPress 개발 영역에서 훅과 액션, 필터를 이해하는 것은 이 강력한 플랫폼의 잠재력을 온전히 끌어내기 위한 필수 조건입니다.

훅은 WordPress 커스터마이징의 뼈대 역할을 하며, 기능을 매끄럽게 수정하고 확장할 수 있게 해줍니다. 액션은 런타임의 주요 지점에서 특정 작업을 수행하도록 해주고, 필터는 데이터를 가공해 변경된 결과를 반환하도록 해줍니다. 이제 막 시작한 개발자든 경험이 풍부한 개발자든, 이 가이드는 WordPress 훅과 액션, 필터가 제공하는 진정한 유연성과 커스터마이징 역량을 활용하는 데 필요한 통찰과 실전 예제를 제공합니다. 그럼 본격적으로 살펴보며 WordPress 개발의 무한한 가능성을 열어보겠습니다.

WordPress 훅과 액션 다이어그램

훅(Hooks)

훅은 WordPress 플러그인과 테마 개발의 토대입니다. 개발자가 WordPress의 특정 위치에 직접 작성한 코드를 ‘연결(hook)’해, 코어 파일을 수정하지 않고도 WordPress의 동작 방식을 바꿀 수 있는 지점을 말합니다.

WordPress 훅과 액션 코드 예제

WordPress 훅에는 액션과 필터, 두 가지 유형이 있습니다

WordPress 훅은 액션(Action)과 필터(Filter)라는 두 가지 기본 유형으로 이루어집니다. 액션은 WordPress 런타임의 정해진 지점에서 특정 작업을 실행하게 해주고, 필터는 WordPress가 처리하는 데이터를 수정한 뒤 반환할 수 있게 해줍니다.

액션(Actions):

액션을 사용하면 WordPress에서 정보를 가져와 원하는 처리를 수행함으로써 특정 함수의 기본 동작을 바꿀 수 있습니다. 액션이 실행되고 나면 어떤 데이터도 WordPress로 되돌려줄 필요가 없습니다.

액션을 추가할 때는 add_action() 함수를 사용합니다. WordPress는 액션을 다루는 데 도움이 되는 여러 함수를 제공하며, 그중 가장 널리 쓰이는 것은 다음과 같습니다.

  • add_action(): do_action 과정에서 실행될 훅에 지정한 함수를 연결합니다.
  • remove_action(): 특정 액션 훅에 연결된 함수를 제거합니다.
  • do_action(): 훅에 연결된 함수들이 실제로 실행되는 지점입니다.
  • has_action(): 액션이 등록되어 있는지 확인합니다.
WordPress 훅 설명

액션은 WordPress 코드에서 다음과 같이 정의됩니다.

do_action( 'action_name', );

do_action(‘wp_head’) 액션에 연결하면 WordPress가 사이트 헤더를 처리할 때마다 직접 작성한 코드를 실행할 수 있습니다. 이 액션에는 추가 인자가 필요하지 않습니다.

전체 예시:

add_action( string $hook_name, callable $callback, int $priority = 10, int $accepted_args = 1 ): true

전체 액션 레퍼런스:

https://codex.wordpress.org/Plugin_API/Action_Reference

https://developer.wordpress.org/reference/functions/add_action/

필터(Filters):

필터는 특정 함수의 기본 동작을 수정합니다. 전달받은 데이터를 가공한 뒤, 브라우저에 표시되기 전에 WordPress로 반환하는 방식입니다.

예시:

  • add_filter(): 훅에 함수를 연결합니다
  • remove_filter(): 지정한 필터 훅에 연결된 함수를 제거합니다
  • doing_filter(): 현재 실행 중인 필터를 감지합니다
  • has_filter(): 필터가 등록되어 있는지 확인합니다

필터는 WordPress 코드에서 다음과 같이 정의됩니다.

apply_filters( 'filter_name', 'value_to_be_filtered', );

filter_name 문자열은 필터의 이름이고, value_to_be_filtered 변수는 필터링을 거쳐 반환되어야 할 값이며, 그 뒤의 변수는 액션과 마찬가지로 추가 인자를 전달하는 데 사용합니다.

예시: apply_filters( ‘admin_footer_text‘ , string $text ) 필터에 연결하면 관리자 푸터에 표시되는 문구를 바꿀 수 있습니다. WordPress 5.4부터 기본값은 관리자 영역 푸터에 Thank you for creating with WordPress. 라는 문장을 표시합니다.

WordPress 훅

액션(Actions) 필터(Filters)
액션은 WordPress 코어가 실행되는 특정 시점에 직접 만든 함수를 실행하는 데 사용합니다. 필터는 다른 함수가 사용하는 데이터를 수정하거나 원하는 형태로 바꾸는 데 사용합니다.
액션은 WordPress 코드에서 do_action( ‘action_name’ ) 함수로 정의·생성됩니다. 필터는 WordPress 코드에서 apply_filters( ‘filter_name’, ‘value_to_be_filtered’ ) 함수로 정의·생성됩니다.
액션은 액션 훅(Action hook)이라고도 부릅니다. 필터는 필터 훅(Filter hook)이라고도 부릅니다.
액션은 액션 계열 함수로만 연결할 수 있습니다. 예: add_action(), remove_action(). 필터는 필터 계열 함수로만 연결할 수 있습니다. 예: add_filter(), remove_filter().
액션 함수는 콜백 함수에 인자를 전달하지 않아도 됩니다. 필터 함수는 콜백 함수에 최소 하나 이상의 인자를 전달해야 합니다.
액션 함수는 WordPress의 동작 방식을 바꾸는 일까지 포함해 어떤 작업이든 수행할 수 있습니다. 필터 함수는 오직 필터가 전달한 데이터를 수정하기 위해 존재합니다.
액션 함수는 아무것도 반환하지 않아야 합니다. 다만 출력을 echo 하거나 데이터베이스와 상호작용할 수는 있습니다. 필터 함수는 변경한 내용을 반드시 결과로 반환해야 합니다. 아무것도 바꾸지 않았더라도 전달받은 값을 그대로 반환해야 합니다.
액션은 코드가 유효하기만 하다면 거의 무엇이든 실행할 수 있습니다. 필터는 의도치 않은 부작용이 생기지 않도록 독립적으로 동작해야 합니다.

정리하자면, WordPress 훅과 액션, 필터를 능숙하게 다루게 되면 WordPress 사이트를 커스터마이즈하고 개선할 수 있는 길이 무한히 열립니다. 훅이 동작하는 방식을 이해하고, 액션의 힘을 활용하며, 필터의 유연함을 끌어내면 사이트의 기능과 외형을 필요에 꼭 맞게 다듬을 수 있습니다. 이 가이드에서 얻은 지식이면 WordPress 개발 여정을 온전히 주도할 수 있습니다. 이제 직접 실험해 보고 사용자에게 인상적인 경험을 만들어 주세요. WordPress 훅과 액션, 필터의 다재다능함을 받아들여 사이트의 진정한 잠재력을 열어보시기 바랍니다. 즐거운 코딩 되세요!

WordPress의 미래가 궁금하신가요? 이 도 확인해 보세요!

Subscribe to our newsletter

WooCommerce tips, plugin updates, and release notes. No spam.