본문 바로가기

WordPress/Filters

WordPress Filter Plugin example

워드프레스 플러그인(Filter) 작성 및 사용 예



개요

워드프레스를 사용하면서 개발자가 작성한 함수를 워드프레스가 실행할 수 있도록 하는 방법은 플러그인을 작성하는 것이다

플러그인의 형태에는 여러가지가 있지만 여기서는 간단한 Filter 플러그인을 작성하고 사용하는 방법을 소개하고자 한다



테스트 환경

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-filter-plugin-test\my_simple_filter_plugin_sample.php

<?php


/*

Plugin Name: Simple Filter Plugin

Plugin URI: http://micropilot.tistory.com

Description: Simple Filter Plugin

Version: 1.0

Author: Kim Chang Woon

Author URI: http://micropilot.tistory.com

*/


function process_title($title){

 return '[' . $title.' ]';

}


add_filter('the_title', 'process_title');


?>



위의 필터 함수에 대한 설명

플러그 파일의 가장 첫 부분은 주석으로 된 헤더를 작성해야 하고 필수적인 항목은 Plugin Name 이다

헤더부분은 워드프레스 관리자 패널의 [플러그인] 페이지에 표시되어 관리자에게 보여진다


add_filter() 함수는 워드프레스가 내장한 함수이며 개발자가 작성한 함수를 특정 필터 후크(Hook)에 등록하는 역할을 한다 여기서는 개발자가 정의한 process_title() 함수를 'the_title'라는 필터 후크에 등록하고 있다. 'the_content' 라는 필터 후크도 있으므로 적절히 사용할 수 있다


'the_title' 필터후크는 워드프레스가 웹페이지 제목을 화면에 출력하기 직전의 시점을 가리키며 'the_title' 필터후크에 개발자 필터함수를 등록하면 제목이 화면에 출력되기 직전에 개발자 필터함수가 호출되고 웹페이지의 제목이 함수에게 아규먼트로 전달된다


개발자가 정의한 필터함수는 적용된 필터 후크에 따라서 화면에 출력될 데이터를 아규먼트로 전달 받아야 하므로 '$title'와 같은 파라미터를 선언해야 하고 데이터를 적절히 가공한 후에 다시 리턴해야 한다.


필터함수가 리턴한 값은 필터 후크에 대응하는 웹페이지의 물리적인 위치에 출력된다


플러그인 중에서 필터가 가지는 의미는 화면이나 DB에 출력될 데이터가 출력되기 직전에 개발자의 코드를 통해 가공될 기회를 준다는데 있다



완성된 플러그인을 사용하는 절차

위와 같이 작성된 플러그인에 오류가 없다면 개발자 패널의 [플러그인] 화면에 등록이 되어 관리자에게 보이게 되고 관리자 [활성화] 링크를 누르면 모든 웹페이지에 적용되어 함수가 실행된다