wordpress

워드프레스 플러그인 - 어드민 메뉴에 내 메뉴 만들기

은둔한량 2013. 2. 18. 15:23
반응형

   <== 메뉴 추가한 모습 ^^

워드프레스는 설치형 블로그툴로 요즘에는 블로그를 운영하는 목적뿐만 아니라 

회사 홈페이지나 광고 사이트등 많은 사이트들의 CMS(콘텐츠 관리 시스템)로 쓰이고 있습니다. 

워드 프레스는 뛰어난 확장성을 갖고 있기 때문에 플러그인이나, 테마등을 개발하여 적용하기 좋습니다. 

따라서 많은 수의 테마와 플러그인이 개발되어 공개되고 있으며 좋은 품질의 테마같은 경우에는 

유료로 돈을 주고 살 수 있는 경우도 있습니다. 

이렇게 다양하게 확장할 수 있는 워드프레스 기능을 활용하여 admin 메뉴에 내 메뉴를 삽입하겠습니다  

워드프레스에 관리자 기능이 있습니다. 여기에 워드프레스 관리를 위한 다양한 메뉴가 있습니다.

 

이 관리자 메뉴에 우리만의 관리자 메뉴를 추가하고 싶을 경우 어떻게 해야 할까요? 

우선 플러그인 파일을 워드프레스 설치 디렉토리의 wp-content 디렉토리에 추가하셔야 합니다. 

플러그인이 간단한 단일 php파일이라면 wp-content에 바로 추가해도 좋지만 여러개의 파일이라면 

디렉토리를 만들어서 추가하는 것이 좋습니다. wp-content에 wdm 이라는 디렉토리를 만들겠습니다. 

그리고 wdm 디렉토리 밑에 plugin.php 라는 파일을 만들고 다음 내용을 넣습니다.

(파일 이름은 상관 없습니다.) 

<?php

/*

Plugin Name: 웹데브모바일샘플

Plugin URI: http://www.webdevmobile.com

Description: 웹데브모바일의 어드민을 확장하고 사이트를 구성하는 plugin.

Version: 0.1

Author: 구준호

Author URI: http://zaksim.com

License: public domain

*/

 

function screen1() {

include('screen1.php');

}

 

function screen2() {

include('screen2.php');

}

 

function wdm_menu() {

// http://codex.wordpress.org/Function_Reference/add_menu_page

add_menu_page('추가메뉴', '추가메뉴', 10, 'menu1', 'screen1', '');

 

// http://codex.wordpress.org/Function_Reference/add_submenu_page

add_submenu_page('menu1', '서브메뉴', '서브메뉴', 10, 'menu2', 'screen2');

}

 

// http://codex.wordpress.org/Function_Reference/add_action

// admin_menu를 hook

add_action('admin_menu', 'wdm_menu');

?>

 

 위처럼 작성하면 가장 위의 주석 부분을 워드프레스가 파싱하여 플러그인 목록에 보여줍니다. 

plugins에서 plugin이 잘 추가됐는지 확인합니다. 

그리고 우리가 추가한 plugin을 사용해야 하므로 active 합니다. 

그러면 관리자 메뉴 중 가장 아래에 추가메뉴와 서브메뉴가 추가된 것을 확인할 수 있습니다. 

코드를 설명하면 다음과 같습니다. 우선 가장 아래줄의 코드 의미를 봅시다.

 

add_action('admin_menu', 'wdm_menu'); 

 

 이 코드는 admin_menu 즉 어드민 메뉴가 표현될 때 사용할 hook으로 wdm_menu라는 function을 

사용하겠다는 의미입니다. 그러면 wdm_menu를 봅시다. 

 

function wdm_menu() {

// http://codex.wordpress.org/Function_Reference/add_menu_page

add_menu_page('추가메뉴', '추가메뉴', 10, 'menu1', 'screen1', '');

 

// http://codex.wordpress.org/Function_Reference/add_submenu_page

add_submenu_page('menu1', '서브메뉴', '서브메뉴', 10, 'menu2', 'screen2');

}

 

add_menu_page를 통해 메뉴를 추가하고

add_submenu_page를 통해 서브메뉴를 추가합니다. 

즉 add_action을 통해 admin_menu가 표현될때 wdm_menu라는 function을 사용하여 

메뉴를 추가합니다.

 

메뉴 추가 함수의 자세한 사용법은 해당 함수 호출의 주석 부분의 url을 참고하세요. 

또한 add_menu_page와 add_submenu_page를 통해 만든 메뉴를 클릭했을때 

호출할 function으로 "screen1"과, "screen2"를 지정합니다. 

이렇게 하면 해당 메뉴를 클릭했을때 각각 screen1()과 screen2() 가 호출됩니다. 

각 function을 봅시다.

function screen1() {

include('screen1.php');

}

 

function screen2() {

include('screen2.php');

}

 

추가메뉴를 클릭하면 screen1.php 를 포함하여 보여주고 

서브메뉴를 클릭하면 screen2.php 를 포함하여 보여줍니다. 

각 파일은 아직 올리지 않아서 에러가 나겠지만 필요한 기능을 php 파일에 구현하여  

같은 디렉토리에 올리면 admin의 메뉴에서 구현한 화면을 볼 수 있습니다.

 

이렇게 플러그인으로 메뉴를 구성하고 관리자 페이지에 관리기능을 추가할 수 있게 됐습니다. 

워드프레스에 쇼핑몰을 붙였다면 쇼핑몰 DB를 관리하는 admin 툴을 만들 수 있겠군요 

물론 여기서 잘 만들어진 DB 데이터를 워드프레스를 통해 관리자가 아닌 사용자에게 

보여주는 방법은 또 다른 얘기지만 이번 글에서는 워드프레스 관리자에 

관리자 메뉴와 관리자 기능을 추가하는 방법을 확인해 보았습니다. 

감사합니다.

 

반응형