워드프레스 플러그인 개발 입문 가이드: 처음부터 첫 번째 사용자 정의 플러그인을 만들기

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

왜 자신만의 워드프레스 플러그인을 개발해야 하는가?

워드프레스 생태계에서 플러그인은 웹사이트 기능을 확장하는 핵심입니다. 수천 개의 플러그인이 시장에 제공되어 있지만, 자신만의 플러그인을 개발하는 것은 독특한 이점을 제공합니다. 우선, 일반 플러그인의 불필요한 코드나 기능을 제거하고 완전히 사용자 정의된 기능을 구현할 수 있습니다. 다음으로, 자체 개발한 플러그인은 테마나 다른 사용자 정의 코드와 깊이 통합되어 더 높은 호환성과 성능을 보장합니다. 또한, 플러그인을 개발함으로써 비즈니스 로직을 테마 코드로부터 분리할 수 있으며, 이는 워드프레스 개발의 최고 사례입니다. 이를 통해 미래에 테마를 변경하더라도 핵심 기능은 정상 작동되며, 웹사이트의 유지 보수성이 향상됩니다.

개발자들에게 플러그인 개발을 배우는 것은 WordPress 아키텍처를 더 깊이 이해하는 좋은 방법입니다. 여러분은 액션 후크(action hook)에 대해 배우게 될 것입니다.add_action필터 후크add_filter짧은 코드add_shortcode등 핵심 개념들. 이러한 지식을 습득하는 것은 플러그인을 만들 수 있게 해주고, 기존 테마와 플러그인을 더 효율적으로 사용자화할 수 있게 해 줍니다.

개발 전의 환경 설정 및 준비 작업

첫 번째 코드를 작성하기 전에 적합한 개발 환경을 설정하는 것이 매우 중요합니다. 이는 효율성을 향상시키고 오류를 방지하는 데 도움이 됩니다.

추천 읽기 WordPress 플러그인 개발 입문부터 전문가 수준까지: 실전 경험과 핵심 기술 공유

로컬 개발 환경 구축

로컬 서버 소프트웨어를 사용하는 것을 추천합니다. 예를 들면, Local by Flywheel, XAMPP, 또는 MAMP은 모두 아파치, MySQL, PHP를 포함하는 WordPress 실행 환경을 신속하게 설정할 수 있습니다. 온라인 서버와 비교해, 로컬 개발은 빠른 테스트와 디버깅을 가능하게 하며, 온라인 웹사이트에 영향을 미치는 것에 대한 우려 없이 작업을 진행할 수 있습니다.

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

워드프레스를 로컬로 설치한 후에, 당신은 다음과 같은 작업을 수행해야 합니다.wp-content/plugins카테고리 아래에 새 플러그인을 위한 전용 폴더를 만들어 주세요. 간단하고 소문자이며 공백이 없는 영어 이름을 사용하기를 권해 드립니다. 예를 들면my-first-plugin

플러그인의 기본 구조를 이해하세요.

가장 단순한 WordPress 플러그인은 단순히 하나의 주 파일로 구성될 수 있습니다. 이 파일에는 특정 플러그인 헤더 주석이 포함되어야 하며, WordPress는 이를 통해 플러그인 정보를 인식합니다. 또한 접근 제어 기능이 필요하며, 이는 일반적으로 인증을 통해 제공됩니다.ABSPATH상수가 구현되도록 정의되어 있는지 여부.

아래는 최소화된 플러그인 주 파일의 예입니다. 파일은 다음과 같은 이름으로 지을 수 있습니다.my-first-plugin.php그리고 방금 만들어진 폴더 안에 넣어주세요:

<?php
/**
 * Plugin Name:       我的第一个插件
 * Plugin URI:        https://yourwebsite.com/my-first-plugin
 * Description:       这是一个用于学习的入门级WordPress插件。
 * Version:           1.0.0
 * Author:            你的名字
 * License:           GPL v2 or later
 */

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

이 파일을 포함하는 폴더를 넣으십시오.wp-content/plugins카탈로그를 작성한 후 WordPress 관리 페이지의 “플러그인” 페이지에서 해당 플러그인을 찾아 활성화할 수 있습니다.

추천 읽기 워드프레스 플러그인 개발을 위한 최종 가이드: 처음부터 커스터마이징된 기능 확장을 구축하기

첫 번째 핵심 기능을 만들기

지금 플러그인에 실제 기능을 추가해 봅시다. 간단한 기능을 만들 거예요. 게시물 내용의 끝에 사용자 정의 텍스트를 자동으로 추가하는 거예요.

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

워드프레스는 필터 후크(Filter Hooks)를 제공하여 데이터가 데이터베이스에 저장되거나 브라우저에 출력되기 전에 데이터를 수정할 수 있게 해줍니다. 기사 내용을 수정하려면 다음을 사용할 수 있습니다.the_content필터.

주 플러그인 파일에서, 활성화된 후크 후에 다음 함수와 후크 호출을 추가하세요:

호스팅닷컴 공유 호스팅
AMD EPYC CPU, NVMe SSD 스토리지 및 LiteSpeed를 통한 고성능, 연중무휴 24시간 전문가 사내 지원, SSL, 무차별 공격, 멀웨어 및 DDoS 보호를 포함한 고급 보안 조치, 최대 73%의 비용 절감.
// 定义向文章内容追加文本的函数
function my_first_plugin_add_text_to_content( $content ) {
    // 确保只在主循环的单篇文章页面执行
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $additional_text = '<p><em>이 글을 읽어 주셔서 감사합니다! 이 글은 “제 첫 번째 플러그인'에서 제공됩니다.</em></p>'만일 지원자가 그 제안을 수락한다면, 그는 그 제안을 수락한 날로부터 30일 이내에 수락을 철회할 수 있습니다.;

이 함수는 먼저 일련의 조건 판단을 통해 추가 텍스트가 첫 페이지, 아카이브 페이지 또는 기타 페이지에 표시되지 않고 오직 개별 기사 페이지에만 표시되도록 합니다. 그런 다음, 원본 내용에 사용자 정의 HTML 단락을 추가합니다.$content변수를 수정한 후 변경된 내용을 반환합니다.

간단한 관리 설정 페이지를 만들기

사용자가 추가할 텍스트를 사용자 정의할 수 있도록 하려면 설정 옵션을 만들어야 합니다. 이는 WordPress 관리 화면에 메뉴 항목과 설정 페이지를 추가하는 것을 포함합니다.

먼저, 사용하기 위해…add_action후크는 관리자 메뉴에 하위 메뉴 페이지를 추가합니다.

추천 읽기 WordPress 플러그인 개발을 마스터하세요: 제로에서 시작하여 첫 번째 커스텀 플러그인을 만들어 보세요.

// 创建管理菜单
function my_first_plugin_add_admin_menu() {
    add_options_page(
        '我的第一个插件设置', // 页面标题
        '我的插件设置',       // 菜单标题
        'manage_options',     // 所需权限
        'my-first-plugin',    // 菜单slug
        'my_first_plugin_settings_page' // 显示页面的回调函数
    );
}
add_action( 'admin_menu', 'my_first_plugin_add_admin_menu' );

다음으로, 표시 설정 페이지의 콜백 함수를 정의하십시오.my_first_plugin_settings_page그리고 서식의 저장 로직을 처리하세요:

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

// 설정, 영역 및 필드 등록
function my_first_plugin_settings_init() {
    register_setting( &#039;my_first_plugin_settings_group&#039;, &#039;my_first_plugin_custom_text&#039; );

add_settings_section(
        &#039;my_first_plugin_section&#039;,
        &#039;사용자 정의 텍스트 설정&#039;,
        null,
        &#039;my-first-plugin&#039;
    );

add_settings_field(
        &#039;my_first_plugin_text_field&#039;,
        &#039;글 끝에 추가할 텍스트&#039;,
        &#039;my_first_plugin_text_field_render&#039;,
        &#039;my-first-plugin&#039;,
        &#039;my_first_plugin_section&#039;
    );
}
add_action( &#039;admin_init&#039;, &#039;my_first_plugin_settings_init&#039; );

// 텍스트 입력 필드 렌더링
function my_first_plugin_text_field_render() {
    $option = get_option( &#039;my_first_plugin_custom_text&#039;, &#039;이 글을 읽어 주셔서 감사합니다! 이 글은 “제 첫 번째 플러그인”에 의해 지원됩니다.&#039; );
    echo &#039;<textarea name="my_first_plugin_custom_text" rows="3" cols="50">' . esc_textarea( $option ) . '</textarea>';
}

마지막으로, 이전에 추가한 텍스트를 수정하는 함수를 만들어 옵션에서 그것을 제거할 수 있게 하세요.my_first_plugin_custom_text중국어 읽기 내용:

InterServer 공유 호스팅
공유 호스팅 월 $2.50 USD, 첫 달 $0.1 USD 프로모션 코드 tryinterserver, 461개 클라우드 앱 스크립트, 원클릭 설치.
function my_first_plugin_add_text_to_content( $content ) {
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $custom_text = get_option( 'my_first_plugin_custom_text', '' );
        if ( ! empty( $custom_text ) ) {!
            $additional_text = '<p><em>' . wp_kses_post( $custom_text ) . '</em></p>'.
            $content . = 1TP5추가_text;
        }
    }
    $content를 반환합니다.
}

플러그인의 보안, 최적화 및 배포 준비

적합한 플러그인은 작동할 뿐만 아니라 안전하고, 효율적이며 유지 보수하기 쉽어야 합니다.

데이터 확인, 이스케이프 처리 및 보안

보안은 플러그인 개발의 생명선입니다. 사용자 입력이나 데이터베이스에서 직접 가져온 데이터를 절대 신뢰하지 마십시오. 데이터를 페이지에 출력할 때는 반드시 에스케이프를 해야 합니다. 이전 코드에서는 다음과 같이 사용했습니다.esc_textarea()관리 페이지에서 출력을 이스케이프하고 사용하십시오.wp_kses_post()글 페이지에서 HTML을 필터링하여 안전한 게시물 내용 태그만 통과할 수 있게 합니다. 양식 처리에서는 WordPress가 제공하는 무효성 검사 및 권한 확인을 사용해야 합니다.sanitize_text_field()데이터 청소를 위해 다양한 함수를 사용합니다.

코드 구조화 및 성능 최적화

플러그인의 기능이 증가함에 따라, 모든 코드를 하나의 마스터 파일에 쓰는 것은 관리하기 어려워질 수 있습니다. 기능별로 코드를 다른 파일에 분할하는 것이 좋은 방법입니다. 예를 들어, 다음과 같은 파일을 만들 수 있습니다.includes/admin/카테고리는 모든 관리 백엔드 관련 코드를 저장하는 장소입니다.includes/public/카탈로그는 프론트엔드 기능 코드를 저장하는 장소입니다.includes/class-*.php저장 클래스 정의.

성능 면에서 후크는 신중하게 사용해야 합니다. 후크 내의 함수는 필요할 때만 실행되어야 하며, 조건부 판단을 통해 이루어져야 합니다. 데이터베이스에서 읽어야 할 옵션 값의 경우, 특히 프론트엔드에서 여러 번 사용할 경우에는 글로벌 변수에 저장하거나 객체 캐시를 사용하여 되풀이되는 데이터베이스 질의를 방지할 수 있습니다.

플러그인을 출시할 준비가 되었습니다.

만일 당신이 WordPress 공식 플러그인 디렉토리에 플러그인을 게시하거나 더 많은 사람들이 사용할 수 있도록 제공하려는 경우, 몇 가지 사항을 완료해야 합니다. 우선 플러그인 헤더 주석 정보가 완전하고 정확한지 확인하십시오. 다음으로, 명확한 설명서를 작성하십시오.readme.txt워드프레스의 공식 형식 요구 사항을 준수하는 문서를 작성하고 플러그인 기능, 설치 단계, 자주 묻는 질문 등을 설명하십시오. 마지막으로, 서로 다른 PHP 버전, 서로 다른 워드프레스 버전 및 서로 다른 테마 및 다른 인기 플러그인과 함께 호환성 테스트를 실시하십시오.

요약

이 가이드를 통해 우리는 기존에 없었던 완전히 기능적이고 관리 후면이 있는 WordPress 플러그인을 만드는 전체 프로세스를 완료했습니다. 우리는 플러그인의 기본 구조, WordPress 核心과 상호 작용하는 동작 및 필터 후크, 관리 페이지 만들기, 그리고 플러그인 보안 및 구조화의 중요성에 대해 배웠습니다. Plugin 개발의 핵심은 WordPress의 이벤트 드라이브 아키텍처를 이해하고 올바른 시기에 “당신의 사용자 정의 코드를 추가하는 것입니다. 이를 기반으로 하여, 사용자 정의 게시물 유형, 메타 데이터, REST API 엔드포인트, 데이터베이스 테이블 생성 등 더 고급한 주제를 탐구하며 강력한 전문급 플러그인을 구축할 수 있습니다.

자주 묻는 질문

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

PHP 프로그래밍 언어의 기본 문법, 객체 지향 프로그래밍 개념 및 HTML, CSS, JavaScript에 대한 기본 지식이 필요합니다. WordPress의 기본 작동 방법 및 기본 개념(예: 게시물, 페이지, 카테고리 등)에 대한 이해도 매우 도움이 됩니다. 가장 중요한 점은 WordPress의 후크(Actions and Filters) 메커니즘을 이해하는 것입니다. 이는 플러그인이 WordPress와 상호 작용하는 주요 방법입니다.

플러그인과 테마의 기능 차이점은 무엇이며, 어떻게 선택해야 하는가?

테마는 주로 웹사이트의 모양과 레이아웃을 제어하며, 플러그인은 기능을 추가하는 데 사용됩니다. 좋은 원칙은 기능이 시각적 표현과 밀접히 연관되어 있는 경우 테마 내에 포함되는 것이 바람직하며, 연락처 양식, SEO 최적화, 전자 상거래 등과 같이 독립적인 기능인 경우 플러그인으로 제작되어야 합니다. 기능을 플러그인으로 구현하면 테마를 바꾸더라도 해당 기능이 유지되므로, 이것은 WordPress 개발의 최고 실천 사례입니다.

저는 한 플러그인에서 여러 PHP 파일을 만들 수 있습니까?

물론 가능하며, 복잡한 플러그인의 경우 이는 권장되는 방법입니다. 서로 다른 기능 모듈을 서로 다른 파일에 분리한 다음 주 플러그인 파일에서 이러한 모듈을 포함시킬 수 있습니다.require_once또는include_once코드를 작성할 때 변수나 함수를 사용하려면 먼저 선언해야 합니다. 좋은 파일 구조는 코드 조직화와 팀 협동에 도움이 됩니다.

제가 개발한 플러그인을 어떻게 디버그할 수 있나요?

워드프레스 개발에서 일반적으로 사용되는 디버깅 방법은 온라인 디버깅 도구를 사용하는 것입니다.WP_DEBUG당신은 웹사이트에서 그것을 사용할 수 있습니다.wp-config.php파일 내에서, 해당 내용을 처리할 것입니다.define( 'WP_DEBUG', true );이것은 PHP 오류, 경고, 및 통보를 화면에 표시할 것입니다. 더 안전한 방법은 동시에 설정하는 것입니다.WP_DEBUG_LOG그것은true오류를 기록하세요.wp-content/debug.log파일 내에서. 또한, 브라우저 개발자 도구 및 Query Monitor와 같은 디버깅 플러그인을 사용하면 효율성을 크게 향상시킬 수 있습니다.

제 플러그인은 가능한 많은 오래된 워드프레스 버전과 호환되어야 합니다.

이는 당신의 타깃 사용자에 달려 있습니다. 일반적으로, 최소한 현재 주요 버전의 두 전 버전과 호환되는 것이 권장됩니다. 버전 분포에 대한 정보는 WordPress 공식 통계에서 확인할 수 있습니다. 코드에서는 조건문 및function_exists()특정 함수나 클래스가 사용 가능한지 확인하여 역호환성을 제공합니다. 플러그인의readme.txt문서에서는 테스트가 성공적으로 완료된 WordPress 버전을 명확히 언급해야 합니다.