RSS

태그 보관물: 액션훅

워드프레스 후킹에 대해 알아보자(액션훅과 필터훅)

워드프레스의 기능을 확장하는 데 반드시 필요한 것이 후킹이다. 후킹(hooking)이란 운영체제나 애플리케이션 등에서 발생하는 함수 호출, 메시지, 이벤트 등을 중간에 바꾸거나 가로채는 명령, 방법, 기술이나 행위를 말한다.

워드프레스에서 후킹은 프로그래밍의 이벤트 처리와 비슷하다. 어떤 이벤트에 대해 미리 정의된 함수를 호출하듯, 워드프레스의 액션에 대해 임의의 함수를 호출하여 요건을 처리한다.

후킹에는 액션훅과 필터훅이 있다. 차이점은 실행 시점과 용도에 있다. 액션훅은 워드프레스 내부의 이벤트가 발생할 때 실행된다. 예를 들면 새글이 등록되거나 댓글이 달릴 때 이를 후킹 하여 임의의 함수를 호출한다. 반면에 필터훅은 DB에 저장하거나 화면에 출력하기 전에 콘텐츠 내용을 변경할 때 사용된다. 포스트나 페이지 내용을 가져와서 화면 출력 전에 콘텐츠를 변경할 수 있다.

  • 액션훅 : 워드프레스 이벤트 발생 시
  • 필터훅 : 매체에 저장하거나 화면 출력하기 전 콘텐츠 변경

[ 액션훅 예제  ]

function new_email_comment() {
    wp_mail('me@example.net', 'The subject', '<p>The <em>HTML</em> message</p>');
}

add_action('comment_post','new_email_comment');

댓글이 달리면 new_email_comment() 함수를 호출하여 메일을 발송한다. 자주 사용하는 액션훅은 다음과 같다.

  • publish_post : 새로운 포스트가 발행될 때
  • create_category : 새로운 카테고리가 생성될 때
  • switch_theme : 테마를 변경할 때

더 자세한 정보는 codex 사이트를 참조해야 한다. 너무 많다.

 

[ 필터훅 예제 ]

function replace_content($content) {
    $content = str_ireplace('ABC','CBA',$content);
    return $content
}
add_filter('the_content','replace_content');

콘텐츠가 화면에 출력되기 전, 더 정확히 the_post() 함수를 처리하는 중에 호출되어 문자열을 변경한다. 원천 데이터(DB)는 변경하지 않으며 화면 출력만 바뀐다.

자주 사용되는 필터훅은

  • the_content 포스트나 페이지의 콘텐츠가 출력될 때
  • the_title 포스트나 페이지의 제목이 출력될 때
  • comment_text 댓글이 출력될 때
  • wp_title 페이지 제목이 출력될 때

더 자세한 정보는 역시 codex 사이트를 참조한다.

 

 
 

태그: ,