add_action(액션훅)과 add_filter(필터훅)의 차이점은 "실행 시점"과 "용도"에 있다.
add_action 은 워드프레스 내부의 이벤트가 발생할때 실행
ex) 글을 등록하거나 댓긍르 달때 이를 후킹하여 임의의 함수를 호출할 수 있다.
add_filter 은 DB에 저장하거나 화면에 출력하기 전에 콘텐츠 내용을 변경할 때 사용
ex) 포스트나 페이지 내용을 가져와서 화면 출력 전에 콘텐츠를 변경할 수 있다,
=====================================================
add_action : 워드프레스 이벤트 발생 시
[액션훅(add_action) 예제]
1 2 3 4 5 6 | <?php function new_email_comment() { wp_mail('test@naver.com', 'test', '<p>TEST massage </p>'); } add_action('comment_post','new_email_comment'); ?> |
댓글이 달리면 new_email_comment() 함수를 호출하여 메일을 발송한다.
자주 사용하는 액션훅은 다음과 같다.
* publish_post : 새로운 포스트가 발행될 때
* create_category : 새로운 카테고리가 생성될 때
* switch_theme : 테마를 변경할 때
====================================================
add_filter : 매체에 저장하거나 화면 출력하기 전 콘텐츠 변경
[필터훅(add_filter) 예제]
1 2 3 4 5 6 7 8 | <?php 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 사이트를 참조한다!