WordPress 플러그인 개발 초보자를 위한 입문 가이드: 제0단계에서 첫 번째 기능 플러그인을 만들어보세요

3분 읽기
2026-03-11
2026-06-04
2,902
아래 링크를 통해 쇼핑하면 추가 비용 없이 수수료를 받을 수 있습니다.

광활한 인터넷 세계에서 WordPress는 그 유연성과 강력한 생태계 덕분에 콘텐츠 관리 시스템(CMS) 분야에서 큰 비중을 차지하고 있습니다. 특히, WordPress의 핵심 기능인 확장성은 플러그인에 크게 의존하고 있습니다. 개발자에게 있어 WordPress 플러그인 개발을 마스터하는 것은 웹사이트의 기능을 심층적으로 커스터마이징할 수 있을 뿐만 아니라, 자신의 창의성을 재사용 가능한 제품으로 구현할 수 있는 기회를 제공합니다. 이 글에서는 처음부터 시작하여, 실용적인 기능을 갖춘 첫 번째 WordPress 플러그인을 직접 만드는 과정을 단계별로 안내하며 플러그인 개발의 비밀을 밝혀드리겠습니다.

WordPress 플러그인 기초 및 준비 사항

첫 번째 코드 줄을 작성하기 전에, WordPress 플러그인의 기본 개념과 적절한 개발 환경을 구축하는 것이 매우 중요합니다. WordPress 플러그인은 본질적으로 하나 이상의 PHP 파일로 구성된 집합이며, JavaScript, CSS, 이미지와 같은 리소스도 포함할 수 있습니다. 플러그인은 새로운 기능을 추가하거나 기존 기능을 수정하는 데 사용될 수 있으며, 테마와는 독립적으로 작동합니다. 이는 테마를 변경해도 플러그인의 기능이 일반적으로 영향을 받지 않는다는 것을 의미합니다.

개발을 위해서는 로컬 개발 환경(예: Local by Flywheel, XAMPP, MAMP) 또는 테스트용 웹사이트가 필요합니다. 주요 도구로는 코드 편집기(VS Code, PhpStorm 등)와 디버깅을 위한 브라우저 개발자 도구가 있습니다. WordPress의 작동 원리를 이해하는 것도 중요합니다.wp-content/plugins디렉터리 구조가 첫 번째 단계입니다. 모든 플러그인은 여기에 설치됩니다.

추천 읽기 WordPress 플러그인 개발의 여정을 시작하는 것은 전 세계 사람들을 위한 도구를 만들 수 있는 능력을 갖추었음을 의미합니다.

첫 번째 플러그인 파일을 만드세요.

플러그인의 진입점은 자체적인 독립적인 디렉터리에 위치한 주 PHP 파일입니다. 이 파일에는 표준적인 플러그인 헤더 주석이 포함되어 있어야 하며, WordPress는 이 주석을 통해 백엔드 관리 인터페이스에서 해당 플러그인을 인식하고 표시할 수 있습니다.

UltaHost의 WordPress 호스팅 서비스
30일 환불 보장, 무제한 대역폭 및 데이터베이스 이용, 무료 DDoS 보호 서비스 제공. 3년 구매 시 50% 용량이 할인됩니다.

플러그인 헤더 정보 정의 (Plugin Header Information Definition)

모든 플러그인은 반드시 특정 PHP 주석 블록으로 시작해야 합니다. 이 주석 블록은 WordPress 관리자 페이지에서 플러그인의 기본 정보를 정의합니다. 플러그인 디렉터리(예: `wp-content/plugins/`) 내에 있는 파일들의 첫 부분에 이 주석 블록을 추가하세요.wp-content/plugins/my-first-plugin) 중에서, ‘’이라는 이름의 파일을 생성하세요.my-first-plugin.php의 파일.

<?php
/**
 * Plugin Name:       我的第一个功能插件
 * Plugin URI:        https://yourwebsite.com/my-first-plugin
 * Description:       这是一个学习用的WordPress插件,用于在文章末尾添加自定义提示框。
 * Version:           1.0.0
 * Requires at least: 5.6
 * Requires PHP:      7.4
 * Author:            你的名字
 * Author URI:        https://yourwebsite.com
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 */

파일을 저장한 후에는 WordPress 관리자에 로그인하세요. “플러그인” 메뉴로 이동하면 “My First Feature Plugin’이라는 이름의 플러그인이 플러그인 목록에 표시될 것입니다. 이제 이 플러그인을 활성화할 수 있습니다. 아직은 어떠한 기능도 없지만, 첫 번째 단계를 성공적으로 완료한 것입니다.

플러그인을 구축하는 기본 구조

기능이 추가됨에 따라 단일 파일은 유지보수하기가 어려워집니다. 좋은 관행은 체계적인 디렉터리 구조를 만드는 것입니다. 예를 들어, 플러그인의 루트 디렉터리에 적절한 디렉터리들을 생성하는 것이 좋습니다.includes/이 폴더에는 핵심 PHP 클래스나 함수 파일들이 저장되어 있습니다.assets/이 폴더에는 JavaScript 파일과 CSS 파일이 저장되어 있습니다.admin/그리고public/백엔드와 프론트엔드 로직을 각각 처리하세요. 메인 파일입니다.my-first-plugin.php그런 다음 이러한 모듈들을 안내하고 로드하는 역할을 수행합니다.

핵심 기능 구현: 훅(Hook)과 필터(Filter)

WordPress 플러그인 개발의 핵심 철학은 “후크(Hooks)”입니다. 후크를 사용하면 핵심 파일을 수정하지 않고도 특정 시점에 자신의 코드를 삽입할 수 있습니다. 후크에는 두 가지 종류가 있습니다: 액션(Action)과 필터(Filter)입니다. 액션은 게시물을 게시하거나 홈페이지를 로드하는 등 특정 이벤트가 발생할 때 함수를 실행할 수 있게 해주며, 필터는 게시물의 내용이나 제목과 같은 데이터를 수정할 수 있게 해줍니다.

추천 읽기 제로에서 원까지: WordPress 플러그인 개발을 위한 완벽한 가이드 및 실전 튜토리얼

필터를 사용하여 기사 내용을 수정합니다.

플러그인에 첫 번째 실질적인 기능을 추가해 보겠습니다: 각 기사의 내용 끝에 사용자 정의된 팝업 창을 자동으로 표시하는 기능입니다. 이를 위해 다음과 같은 방법을 사용할 예정입니다…the_content필터.

먼저, 메인 플러그인 파일의 헤더 주석 아래에 다음 함수와 훅을 추가하세요:

// 防止直接访问文件
if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

/**
 * 在文章内容末尾添加自定义提示框
 *
 * @param string $content 原始文章内容。
 * @return string 修改后的文章内容。
 */
function mfp_add_notice_box( $content ) {
    // 仅在主循环的单篇文章页面显示
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $notice_box = '<div class="mfp-notice" style="background-color: #f0f8ff; border-left: 4px solid #3498db; padding: 15px; margin: 20px 0; border-radius: 5px;">'$notice_box = '<p><strong>팁:</strong> 이 글은 “제 첫 번째 기능 플러그인”에 의해 보다 풍부하게 표현되었습니다. 이 내용이 마음에 드셨기를 바랍니다!</p>'$notice_box = '</div>';
        $content .= $notice_box;
    }
    return $content;
}
add_filter( 'the_content', 'mfp_add_notice_box' );

functionmfp_add_notice_box원본 콘텐츠를 수신합니다.$content매개변수로 현재 환경이 단일 기사 페이지인지를 확인합니다. 만약 그렇다면, 안내 메시지가 포함된 HTML 블록을 생성한 후, 수정된 콘텐츠를 반환합니다.add_filter이 함수는 이 사용자 정의 함수를 WordPress에 마운트합니다.the_content필터 위에.

호스팅닷컴 공유 호스팅
AMD EPYC CPU, NVMe SSD 스토리지 및 LiteSpeed를 통한 고성능, 연중무휴 24시간 전문가 사내 지원, SSL, 무차별 공격, 멀웨어 및 DDoS 보호를 포함한 고급 보안 조치, 최대 73%의 비용 절감.

액션을 사용하여 플러그인에 설정 메뉴를 추가합니다.

플러그인을 더 완벽하게 만들기 위해서는 보통 백엔드 설정 페이지를 제공해야 합니다. 여기서는 액션 훅(Action Hook)을 사용해야 합니다.admin_menu메뉴 항목을 추가해 보겠습니다.

/**
 * 在WordPress后台添加插件设置菜单
 */
function mfp_add_admin_menu() {
    add_options_page(
        '我的插件设置',          // 页面标题
        '我的第一个插件',        // 菜单标题
        'manage_options',       // 所需权限
        'my-first-plugin',      // 菜单 Slug
        'mfp_render_settings_page' // 用于输出页面内容的回调函数
    );
}
add_action( 'admin_menu', 'mfp_add_admin_menu' );

/**
 * 渲染设置页面内容
 */
function mfp_render_settings_page() {
    ?&gt;
    <div class="wrap">
        <h1>제 첫 번째 플러그인 설정입니다.</h1>
        <form action="/ko/options.php/" method="post" data-trp-original-action="options.php">
            <?php
            settings_fields( 'mfp_settings_group' );
            do_settings_sections( 'my-first-plugin' );
            submit_button();
            ?>
        <input type="hidden" name="trp-form-language" value="ko"/></form>
    </div>
    &lt;?php
}

이 예제를 통해 액션 훅(Action Hook)을 사용하여 WordPress 백엔드 인터페이스를 확장하는 방법을 이해하셨을 것입니다. 완전한 설정 페이지를 구성하기 위해서는 보통 추가적인 설정이 필요합니다.register_setting, add_settings_section그리고add_settings_field등의 함수를 사용하여 옵션을 정의하고 저장하는 것은 플러그인의 상호작용성을 구성하는 기반이 됩니다.

플러그인에 스타일과 스크립트를 추가하기

전문적인 플러그인은 기능이 우수할 뿐만 아니라 외관도 적절해야 합니다. CSS와 JavaScript 파일을 올바른 방식으로 추가하여 테마나 다른 플러그인과의 충돌을 피해야 합니다.

추천 읽기 고품질의 WordPress 플러그인을 선택하고 개발하는 방법: 초보자부터 전문가까지의 가이드

안전하게 프론트엔드 리소스를 등록하고 로드하기

WordPress는 다음과 같은 기능들을 제공합니다:wp_enqueue_style그리고wp_enqueue_script이 함수를 사용하면 리소스를 안전하게 추가할 수 있습니다. 우리는 반드시 이 함수를 사용해야 합니다.wp_enqueue_scripts액션 후크(Action Hook)를 사용하여 해당 파일들을 로드하세요.

/**
 * 注册并加载插件的前端样式和脚本
 */
function mfp_enqueue_public_assets() {
    // 获取插件URL
    $plugin_url = plugin_dir_url( __FILE__ );

// 注册并排队样式表
    wp_enqueue_style(
        'mfp-public-style',
        $plugin_url . 'assets/css/mfp-public.css',
        array(),
        '1.0.0'
    );

// 注册并排队JavaScript文件(示例)
    wp_enqueue_script(
        'mfp-public-script',
        $plugin_url . 'assets/js/mfp-public.js',
        array('jquery'), // 依赖jQuery
        '1.0.0',
        true            // 在页脚加载
    );
}
add_action( 'wp_enqueue_scripts', 'mfp_enqueue_public_assets' );

먼저 플러그인 디렉터리 내에 새로운 폴더를 생성해야 합니다.assets/css/mfp-public.css파일을 열고, 이전에 만든 팝업 창을 더욱 아름답게 보이도록 스타일을 추가할 수 있습니다.

InterServer 공유 호스팅
공유 호스팅 월 $2.50 USD, 첫 달 $0.1 USD 프로모션 코드 tryinterserver, 461개 클라우드 앱 스크립트, 원클릭 설치.
/* assets/css/mfp-public.css */
.mfp-notice {
    background-color: #f0f8ff;
    border-left: 4px solid #3498db;
    padding: 15px;
    margin: 20px 0;
    border-radius: 5px;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, sans-serif;
}
.mfp-notice p {
    margin: 0;
    color: #2c3e50;
}

백엔드 리소스를 로드합니다.

백엔드 리소스의 등록 방식은 비슷하지만, 사용되는 훅(hook)은 다릅니다.admin_enqueue_scripts당신은 현재 페이지가 자신의 플러그인 설정 페이지인지를 판단해야 합니다 (예를 들어, 특정 URL을 확인하거나 페이지의 구조를 분석하는 방법으로).get_current_screen()함수를 사용하여 리소스를 선택적으로 로드함으로써 불필요한 성능 부담을 줄일 수 있습니다.

요약

간단한 플러그인의 헤더 정보를 정의하는 것부터 시작하여, WordPress의 강력한 훅 시스템(액션 및 필터)을 활용해 웹사이트의 콘텐츠와 구조를 동적으로 수정하는 방법을 배웠으며, 스타일과 스크립트 리소스를 전문적으로 관리하는 방법도 익혔습니다. 이제 여러분은 첫 번째 기능 플러그인을 구축하는 전체 과정을 거쳤습니다. 핵심은 WordPress의 개발 규칙을 이해하고 따르는 데 있습니다: 코어를 직접 수정하는 대신 훅을 사용하고, 리소스를 올바르게 등록하고 순서대로 처리하며, 명확한 파일 구조를 만드는 것입니다. 이것은 플러그인 개발의 시작에 불과합니다. 앞으로는 쇼트코드(Shortcode)를 만들고, 사용자 정의 게시물 유형(CPT: Custom Post Type)을 정의하며, 데이터베이스와 상호작용하고, REST API 엔드포인트를 구현하고, 플러그인을 국제화하는 등 더 고급된 기능들을 탐구하여 여러분의 플러그인을 더욱 강력하고 사용자 친화적으로 만들 수 있습니다.

자주 묻는 질문

WordPress 플러그인을 개발하려면 어떤 사전 지식이 필요한가요?

기본적인 PHP 프로그래밍 능력이 필요합니다. 여기에는 함수, 조건문, 반복문, 배열 조작에 대한 이해가 포함됩니다. HTML, CSS, 그리고 약간의 JavaScript에 대한 지식도 매우 도움이 될 것입니다. 특히 프론트엔드 인터페이스를 수정해야 할 때는 더욱 그렇습니다. 가장 중요한 것은 WordPress의 기본적인 작동 원리를 이해하는 것입니다. 여기에는 템플릿 계층 구조, 메인 루프, 데이터베이스의 기본 구조 등이 포함됩니다.

내 WordPress 플러그인을 어떻게 디버깅하나요?

WordPress를 활성화하려면…WP_DEBUG“모드는 디버깅의 첫 번째 단계입니다.”라는 문장은 “Mode is the first step in debugging.”로 번역됩니다. 이 문장은 웹사이트 설정이나 개발 과정에서 디버깅을 시작할 때 가장 기본적인 단계로서 ‘모드’(mode)의 중요성을 강조합니다. “모드”는 특정 설정이나 동작 방식을 의미할 수 있으며,wp-config.php파일 내에서 설정을 변경하세요.define( 'WP_DEBUG', true );이것은 PHP 오류 및 경고를 화면에 표시하고 로그에 기록합니다.wp-content/debug.log파일 내에 있습니다. 또한, 브라우저 개발자 도구의 Console(콘솔) 및 Network(네트워크) 패널을 사용하면 JavaScript와 Ajax 요청을 디버깅하는 데 도움이 됩니다. 복잡한 로직의 경우에는 해당 도구들을 활용하실 수 있습니다.error_log()함수나 전용 디버깅 플러그인이 변수 정보를 로그에 출력합니다.

내 플러그인에 설정 가능한 옵션을 어떻게 추가해야 할까요?

플러그인에 설정 옵션을 추가하는 표준적인 방법은 WordPress의 설정 API를 사용하는 것입니다. 이 과정에는 여러 함수가 관여합니다:register_setting()설정 옵션 그룹을 등록하고 데이터베이스에 안전하게 저장하는 데 사용됩니다.add_settings_section()당신의 설정 페이지에 새로운 섹션을 추가하세요.add_settings_field()블록 내에 구체적인 폼 필드(예: 입력란, 드롭다운 메뉴)를 추가하세요. 설정 페이지의 콜백 함수에 이러한 폼 필드와 관련된 처리 로직을 포함시켜야 합니다.settings_fields()그리고do_settings_sections()의 호출을 통해 양식을 올바르게 생성하고 검증할 수 있습니다.

어떻게 하면 제 플러그인이 다른 플러그인이나 테마와 충돌하지 않도록 할 수 있을까요?

최상의 관행을 따르는 것이 충돌을 피하는 데 핵심입니다. 모든 함수, 클래스, 상수, 액션/필터의 이름, 그리고 HTML의 CSS 클래스에 고유한 접두사나 네임스페이스를 추가하세요. 예를 들어, 다음과 같은 방법을 사용할 수 있습니다:myplugin_function_name이런 함수명 말이에요, 단순히 그냥이 아니라…function_name사용하기wp_enqueue_style그리고wp_enqueue_script리소스를 로드하고, 스타일과 스크립트의 핸들이 유일하도록 해야 합니다. 가능하다면 코드를 클래스 안에 담아 변수와 함수를 더욱 분리하세요.

개발이 완료되었다면, 제 플러그인을 어떻게 배포할 수 있을까요?

플러그인을 공식 WordPress 플러그인 디렉터리에 제출하려면, 해당 플러그인이 WordPress의 코딩 표준과 GPL 라이선스를 완전히 준수하고 있는지 확인해야 합니다. WordPress.org 계정을 등록한 후 플러그인을 제출하여 심사를 받아야 합니다. 심사 팀은 코드의 보안성, 기능성, 문서의 완성도를 검토할 것입니다. 제출하기 전에 반드시 공식 플러그인 개발 안내서와 제출 가이드를 자세히 읽어보시기 바랍니다. 상업용 플러그인의 경우에는 자신의 웹사이트나 제3자 마켓을 통해 배포할 수도 있습니다.