WordPress Action Plugin example
워드프레스에서 간단한 플러그인(Action) 작성 및 사용 예
개요
워드프레스를 사용하면서 개발자가 작성한 함수를 워드프레스가 실행할 수 있도록 하는 방법은 플러그인을 작성하는 것이다
플러그인의 형태에는 여러가지가 있지만 여기서는 간단한 Action 플러그인을 작성하고 사용하는 방법을 소개하고자 한다
테스트 환경
Autoset 9.1
워드프레스 4.4
에디터 : 워드프레스 무료 플러그인 중에서 Advanced Code Editor를 설치하고 코드를 작성
작성절차
Autoset 안에 워드프레스가 설치된 디렉토리가 'public_html/wordpress' 라고 한다면 wordpress/wp-content/plugins/ 안에 임의의 폴더를 생성하고 그 안에 임의의 파일을 생성하고 다음과 내용을 작성한다
C:\Autoset9\public_html\wordpress\wp-content\plugins\my-simple-action-plugin-test\my_simple_action_plugin_sample.php
<?php
/*
Plugin Name: Simple Action Plugin
Plugin URI: http://micropilot.tistory.com
Description: Simple Action Plugin
Version: 1.0
Author: Kim Chang Woon
Author URI: http://micropilot.tistory.com
*/
function footer_action(){
echo 'Action Executed';
}
/**
* 워드프레스가 시작되면 시스템에 의해서 자동으로 호출되어 특정 후크에 함수를 등록하는 기능을 한다
* 이렇게 등록된 함수는 코드상의 임의의 위치에서 do_action('후크이름') 함수를 호출하면 실행된다
**/
add_action('wp_footer', 'footer_action');
?>
위의 코드는 wp_footer' 액션 후크에 'footer_action' 함수를 등록했기 때문에 웹페이지의 body 태그가 닫히기 직전, 즉 웹페이지의 가장 하단( footer sidebar 아래쪽)에 'Action Executed' 문자열이 출력될 것이다
만약, 위의 코드에서 액션 후크를 'wp_head' 으로 변경한다면 화면의 최상단에 'Action Executed' 문자열이 출력될 것이다
테마에 포함되는 필수 액션 후크
wp_head : 워드프레스가 헤더 부분의 데이터를 생성하는 시점. 이 시점에 액션함수에서 화면에 출력하는 데이터는 화면의 최상단에 포함된다
wp_footer : 워드프레스가 body 태그를 닫는 직전의 시점. 이 시점에 액션함수에서 화면에 출력하는 데이터는 화면의 최상단에 포함된다
comment_form : 이용자가 글을 작성하는 폼이 화면에 보이기 직전의 시점
위의 액션 함수에 대한 설명
플러그 파일의 가장 첫 부분은 주석으로 된 헤더를 작성해야 하고 필수적인 항목은 Plugin Name 이다
헤더부분은 워드프레스 관리자 패널의 [플러그인] 페이지에 표시되어 관리자에게 보여진다
add_action() 함수는 워드프레스가 내장한 함수이며 워드프레스가 시작되면 자동으로 호출되어 개발자가 작성한 함수를 특정 액션 후크(Hook)에 등록하는 역할을 한다 여기서는 개발자가 정의한 footer_action() 함수를 'wp_footer'라는 액션 후크에 등록하고 있다. 액션 후크에 등록된 함수는 do_action('후크이름') 함수를 호출하면 실행된다
'wp_head' 액션 후크는 워드프레스가 웹페이지 헤드 부분이 생성되는 시점을 가리키며 'wp_head' 액션 후크에 개발자 액션함수를 등록하면 테마의 헤더가 생성되기 직전에 개발자 액션함수가 호출된다
개발자가 정의한 액션함수는 파라미터를 선언할 필요가 없고 값을 리턴할 필요도 없다
플러그인 중에서 액션 가지는 의미는 관리자 패널이나 템플릿이 실행되는 중의 특정 시점에 개발자의 코드가 실행될 수 있도록 기회를 준다는데 있다
완성된 플러그인을 사용하는 절차
위와 같이 작성된 플러그인에 오류가 없다면 개발자 패널의 [플러그인] 화면에 등록이 되어 관리자에게 보이게 되고 관리자 [활성화] 링크를 누르면 모든 웹페이지에 적용되어 함수가 실행된다