-
목차
🧠 왜 직접 플러그인을 만들어야 할까?
- functions.php에 기능 추가하다가 구조가 엉망이 되셨나요?
- 테마를 바꿀 때마다 기능이 사라지나요?
- 사이트마다 반복 사용하는 기능이 있나요?
👉 그럴 때 필요한 것이 바로 내가 만든 플러그인입니다.
“사이트 기능은 테마가 아니라 플러그인으로 분리하는 것이 원칙입니다.”
✅ 플러그인 만들기 기본 개요
요소설명플러그인 디렉토리 /wp-content/plugins/my-plugin/ 메인 PHP 파일 my-plugin.php (필수) 플러그인 정보 헤더 Plugin Name, Description 등 주석 필요 기능 정의 add_action(), add_filter() 등으로 후크 등록 활성화 방식 WP 관리자에서 수동 활성화
📦 1단계: 플러그인 디렉토리 및 메인 파일 생성
bash복사편집/wp-content/plugins/my-custom-plugin/ └── my-custom-plugin.phpmy-custom-plugin.php 기본 구조
php복사편집<?php /** * Plugin Name: 나만의 플러그인 * Description: 워드프레스 플러그인 직접 만들기 예제입니다. * Version: 1.0 * Author: Your Name */ // 보안 체크 if (!defined('ABSPATH')) { exit; } // 기능 등록 예시 function myplugin_footer_message() { echo '<p style="text-align:center;">이 사이트는 나만의 플러그인을 사용 중입니다.</p>'; } add_action('wp_footer', 'myplugin_footer_message');📌 파일 이름 = 폴더 이름 = 슬러그로 사용하는 것이 일반적입니다.
🧩 2단계: 플러그인 구조 설계 (기능 분리)
bash복사편집my-custom-plugin/ ├── my-custom-plugin.php ├── includes/ │ ├── init.php │ ├── admin-settings.php │ └── shortcodes.php ├── assets/ │ ├── style.css │ └── script.jsphp복사편집// 메인 파일에서 기능 include require_once plugin_dir_path(__FILE__) . 'includes/init.php'; require_once plugin_dir_path(__FILE__) . 'includes/admin-settings.php'; require_once plugin_dir_path(__FILE__) . 'includes/shortcodes.php';유지보수와 재사용을 위해 기능별 파일 분리 필수입니다.
🪝 3단계: 액션 & 필터 후크 활용
add_action() 사용 예시
php복사편집function myplugin_enqueue_assets() { wp_enqueue_style('myplugin-style', plugin_dir_url(__FILE__) . 'assets/style.css'); } add_action('wp_enqueue_scripts', 'myplugin_enqueue_assets');add_filter() 사용 예시
php복사편집function myplugin_modify_title($title) { return $title . ' | 플러그인 테스트'; } add_filter('the_title', 'myplugin_modify_title');
🧪 4단계: 관리자 설정 페이지 추가 (간단 예시)
php복사편집// admin-settings.php add_action('admin_menu', function() { add_menu_page( '나만의 설정', '플러그인 설정', 'manage_options', 'myplugin-settings', 'myplugin_render_settings_page' ); }); function myplugin_render_settings_page() { echo '<div class="wrap"><h2>설정 페이지</h2><p>여기에 설정 UI를 만들 수 있습니다.</p></div>'; }📌 admin_menu 후크를 통해 관리자 메뉴에 항목 추가
🔐 5단계: 플러그인 보안 기본
보안 요소처리 방식파일 직접 접근 방지 if (!defined('ABSPATH')) exit; Nonce 처리 wp_create_nonce(), check_admin_referer() 권한 제한 current_user_can('manage_options') 등으로 체크 외부 요청 검증 sanitize_text_field(), esc_html(), wp_verify_nonce() 등 필수 사용
🎯 실전 적용: 자주 쓰는 커스텀 코드 → 플러그인화
예시 기능플러그인화 가능 여부로그인 후 리다이렉트 가능 (login_redirect 필터 사용) 짧은코드로 CTA 버튼 출력 가능 (add_shortcode() 사용) GA 코드 삽입 가능 (wp_head 후크 사용) 관리자 컬럼 정렬 변경 가능 (manage_posts_columns 등 후크 활용)
✅ 플러그인 개발 체크리스트
항목완료 여부디렉토리 및 메인 파일 생성 ✅ / ❌ 플러그인 헤더 주석 입력 ✅ / ❌ 기능 파일 구조 설계 (includes 등) ✅ / ❌ 액션/필터 등록 및 실행 테스트 ✅ / ❌ 관리자 메뉴 추가 여부 확인 ✅ / ❌ 플러그인 활성화 후 UI 확인 ✅ / ❌ '워드프레스' 카테고리의 다른 글
🧠 왜 사용자 권한 시스템이 중요한가? (0) 2025.04.27 🌐 멀티사이트(Multisite)란? (2) 2025.04.26 ⏱ WP-Cron이 뭐지? 서버 크론과는 다르다! (2) 2025.04.26 🧠 워드프레스는 "조건별로" 템플릿을 불러옵니다 (1) 2025.04.26 🧠 왜 DB 구조를 이해해야 하는가? (2) 2025.04.25 🔄 AJAX가 필요한 이유 (1) 2025.04.25 🧠 왜 커스텀 포스트 타입(CPT)이 필요한가? (1) 2025.04.25 🔗 워드프레스 REST API란? (0) 2025.04.24