사용자 정의 WordPress 플러그인을 만드는 방법

게시 됨: 2022-02-24

맞춤형 WordPress 플러그인을 만드는 방법을 찾고 계십니까? 이 튜토리얼에서는 WooCommerce 제품 페이지에서 일부 요소를 제거할 수 있는 WP 플러그인을 처음부터 빌드하는 방법을 보여줍니다.

프로세스를 진행하기 전에 사용자 지정 WordPress 플러그인을 먼저 만들어야 하는 이유를 살펴보겠습니다.

WordPress에서 사용자 정의 플러그인을 만드는 이유는 무엇입니까?

우리는 WordPress에서 사용할 수 있는 무료 및 유료 플러그인이 엄청나게 많다는 것을 알고 있습니다. 그들 모두는 귀하의 웹사이트의 기능을 향상시키기 위해 다양한 기능으로 개발되었습니다. 그러나 플러그인의 일부 기능은 웹사이트에 불필요할 수 있으며 프레임워크에 추가 가중치 역할을 할 수 있습니다.

때로는 매우 구체적인 기능을 가진 도구만 있으면 됩니다. 그러나 일부 플러그인에는 추가 기능이 너무 많이 포함되어 있어 최대한 활용하지 못할 수 있습니다. 이러한 경우 사용자 정의 WordPress 플러그인을 직접 만들 수 있습니다.

예를 들어 전용 플러그인을 사용하여 제품 페이지 또는 다른 WooCommerce 페이지에서 요소를 제거하고 싶다고 가정해 보겠습니다. 대부분의 플러그인은 요소를 제거하는 것 외에 몇 가지 추가 기능을 제공합니다. 이렇게 하면 플러그인 크기와 웹사이트 스토리지가 증가하여 웹사이트 성능도 저하될 수 있습니다.

물론 CSS 스크립트나 WooCommerce 후크를 사용하여 요소를 제거할 수도 있습니다. 그러나 적절한 실행 없이 WordPress 테마를 업데이트하면 웹사이트에 몇 가지 문제가 발생할 수 있습니다. 그러나 사용자 정의 플러그인을 만들면 수정 사항이 어떤 상황에서도 웹 사이트를 방해할 가능성이 줄어듭니다.

사용자 정의 WordPress 플러그인을 만드는 방법은 무엇입니까?

사용자 정의 WordPress 플러그인을 만드는 전체 프로세스는 생각보다 매우 쉽습니다. 그러나 사용자 정의 플러그인을 만들기 전에 염두에 두어야 할 몇 가지 사항부터 시작하겠습니다.

1. 시작할 준비

사용자 지정 WordPress 플러그인을 만들려면 여러 가지 요구 사항을 충족해야 합니다. 그들은:

  • 로컬 호스트 서버에 WordPress 설치

라이브 서버에서 플러그인을 개발할 수 있지만 웹사이트가 온라인 상태일 때 그렇게 하는 것은 매우 나쁜 습관입니다. 웹사이트에 불필요한 변경을 가하면 심각한 문제가 발생할 수 있습니다. 따라서 이를 방지하려면 아직 사용자 지정 WordPress 플러그인이 없는 경우 로컬 호스트 테스트 환경을 설정하여 사용자 지정 WordPress 플러그인을 생성해야 합니다.

  • 코드 편집기 사용

WordPress에는 플러그인 코드를 추가하고 수정할 수 있는 플러그인 편집기가 내장되어 있습니다. 사용자 정의 WordPress를 만들기 위해 작업할 수도 있습니다. 그러나 Sublime Text, Visual Studio Code 또는 유사한 편집기와 같은 IDE(코드 편집기)를 사용하는 것이 좋습니다.

사용자 정의 플러그인을 구축하는 데 필요한 여러 도구와 기능이 있습니다. 따라서 IDE로 작업하는 것이 WP 코드 편집기를 사용하는 것보다 훨씬 낫기 때문에 훨씬 더 편안합니다.

  • 몇 가지 기본적인 WP 개발 지식.

사용자 정의 WordPress 플러그인을 생성하기 위해 WP 후크, PHP 함수를 사용하고 자체 함수를 정의합니다. 따라서 WordPress 개발에 대한 기본 지식이 있는 경우에만 이 자습서를 계속하는 것이 좋습니다. 그렇지 않으면 사용자 정의 플러그인을 직접 개발하기가 매우 어려울 수 있습니다.

다음은 사용자 지정 플러그인을 만드는 데 필요한 몇 가지 기본 요구 사항 및 리소스입니다. 자습서를 계속 진행하기 전에 이러한 모든 요구 사항이 충족되는지 확인하십시오.

2. 커스텀 워드프레스 플러그인의 메인 파일 생성

사용자 정의 WordPress 플러그인을 만드는 첫 번째 단계는 플러그인의 기본 파일을 만드는 것입니다. 사실 플러그인을 만드는 데에는 하나의 메인 파일만 있으면 됩니다. 플러그인 이름과 함께 주석 처리된 블록이 있어야 합니다.

이것은 플러그인임을 인식할 수 있도록 WP에서 요구하는 유일한 값입니다. 그러나 모범 사례를 따르고 문제를 방지하려면 여기에 몇 가지 다른 정보를 입력해야 합니다.

기본 파일 사용자 정의 WordPress 플러그인 만들기

이제 작업을 시작하고 이 파일을 생성해 보겠습니다.

localhost 공용 폴더를 열고 작업할 WP 설치로 이동합니다. 그런 다음 " wp-content/plugins " 폴더로 이동하면 설치된 모든 플러그인이 표시됩니다.

여기에 새 사용자 정의 플러그인 파일을 추가하기만 하면 됩니다.

WP 설치의 wp-content/plugins 폴더 아래에 새 폴더를 만듭니다. 이해를 돕기 위해 이 튜토리얼에서는 플러그인 이름을 QuadLayers_custom_products 로 지정했습니다.

플러그인 이름

이 폴더 안에는 모든 플러그인 파일이 있습니다. 이제 방금 만든 폴더에 기본 파일을 만들어 보겠습니다. .php 파일 형식이어야 합니다.

메인 파일

우리가 QuadLayers_cp.php 라고 명명한 이 메인 파일은 모든 것이 시작되는 곳입니다. 플러그인의 출입구입니다. 코드 편집기를 사용하여 파일을 생성할 수 있지만, 확장자가 PHP인지, PHP 파일 형식이 올바른지 확인하십시오.

이 코드를 복사하여 파일에 붙여넣습니다.

 <?php

/**
 * @링크 https://quadlayers.com/
 * @0.0.1부터
 * @package QuadLayers 맞춤형 제품
 * 플러그인 이름: QuadLayers 맞춤형 제품  
 * 플러그인 URI: https://quadlayers.com/
 * 설명: 요소를 제거하여 제품 단일 페이지 사용자 정의
 * 버전: 0.0.1
 * 저자: QuadLayers
 * 텍스트 도메인: qlcp
 */
 
if(!정의('ABSPATH')){다이('-1');}

함수 시작(){ 		
        if(is_admin()==true){
        plugin_dir_path( __FILE__ ).'includes/Backend/QuadLayers-backend-init.php'가 필요합니다.
        }
        plugin_dir_path( __FILE__ ).'includes/Frontend/QuadLayers-frontend-init.php'가 필요합니다.
 }  
함수 runit(){
    add_action('초기화', '시작');
}
런닛();

보시다시피 여기에서 QuadLayers-frontend-init.phpQuadLayers-backend-init.php 두 개의 파일을 더 호출합니다. 분명히 하나는 프론트엔드에서 작동하고 다른 하나는 백엔드에서 작동합니다. 파일 이름으로 명확하게 추론할 수 있습니다.

그 중 is_admin() 함수와 함께 조건부를 사용하기 때문에 백엔드 파일이 백엔드에서만 작동하도록 할 수 있습니다. 즉, 관리자가 WP 관리자 대시보드에 있는 경우에만 트리거됩니다.

지금 당장은 프론트엔드와 백엔드 파일이 모두 아직 존재하지 않기 때문에 웹사이트에 약간의 오류가 있을 것입니다. 따라서 계속해서 생성해 보겠습니다.

Include 라는 플러그인 디렉토리 includes 새 폴더를 만듭니다. 그런 다음 그 안에 두 개의 폴더를 더 추가합니다: backendfrontend .

잘못된 경로 오류를 제거하려면 두 개의 빈 파일을 각각 생성합니다. 각 폴더는 백엔드 폴더에 QuadLayers-backend-init.php init.php, 프론트엔드 폴더에 QuadLayers-frontend-init.php 입니다.

그래서 이것이 우리의 최종 플러그인 파일 구조가 될 것입니다:

 QuadLayer_custom_products
    __QuadLayer_cp.php
    __포함
       __백엔드
          __QuadLayers-backend-init.php
       __프런트
          __QuadLayers-frontend-init.php

3. 백엔드 옵션

기본 파일을 추가한 후 플러그인의 백엔드 옵션 추가를 시작할 수 있습니다. 여기에서는 WP 관리 대시보드에 플러그인 메뉴 탭을 만들 것입니다. 이를 통해 사용자는 프런트 엔드에서 요소를 숨기거나 표시하는 몇 가지 옵션을 선택할 수 있습니다.

이 데모에서는 WP에서 제공하는 설정 API를 사용합니다. 배우기가 어렵지 않고 이에 대한 문서가 많기 때문에 아직 이해하지 못하더라도 걱정하지 마십시오.

이에 대해 자세히 알아보려면 WP 설정 API에 대한 전체 가이드를 참조하세요.

지금은 QuadLayers-backend-init.php 파일에 다음 코드를 복사하여 붙여넣으세요.

 <?php 
add_action('admin_init', 'QuadLayers_display_options'); 
add_action('admin_menu', 'QuadLAyers_cp_AdminMenu'); 
기능 QuadLAyers_cp_AdminMenu(){ 
    add_menu_page( __('QuadLayers 사용자 정의 제품', 'qlcp'), __('QuadLayers 사용자 정의 제품', 'qlcp'), 'manage_options', 'qlcp', 'QuadLayersOptionsPage' ); 
} 
기능 QuadLayersOptionsPage() { 
    ?> <form action="options.php" method="post"> <?php 
    settings_fields('플러그인_QL_페이지'); 
    do_settings_sections('플러그인_QL_페이지'); 
    제출_버튼(); 
    </form><?php
}

기능 QuadLayers_display_options(){
        
    register_setting('plugin_QL_Page', 'qlcp_options', 'callbackValidation');

    add_settings_section(
        'QuadLayers_pluginPage_section',
        __('QuadLayers 백엔드 옵션', 'qlcp'),
        'QuadLayersSettingsSectionCallback',
        '플러그인_QL_페이지'
    );
    add_settings_field(
        'QuadLayers_checkbox_field_1',
        esc_attr__('제목', 'qlcp'),
       'QuadLayersCheckboxRender_1',
        '플러그인_QL_페이지',
        'QuadLayers_pluginPage_section'
    );
    add_settings_field(
        'QuadLayer_checkbox_field_2',
        esc_attr__('수량', 'qlcp'),
       'QuadLayersCheckboxRender_2',
        '플러그인_QL_페이지',
        'QuadLayers_pluginPage_section'
    );
    add_settings_field(
        'QuadLayer_checkbox_field_3',
        esc_attr__('SKU', 'qlcp'),
       'QuadLayersCheckboxRender_3',
        '플러그인_QL_페이지',
        'QuadLayers_pluginPage_section'
    );
    add_settings_field(
        'QuadLayer_checkbox_field_4',
        esc_attr__('메타', 'qlcp'),
       'QuadLayersCheckboxRender_4',
        '플러그인_QL_페이지',
        'QuadLayers_pluginPage_section'
    );
    add_settings_field(
        'QuadLayer_checkbox_field_5',
        esc_attr__('설명 탭', 'qlcp'),
       'QuadLayersCheckboxRender_5',
        '플러그인_QL_페이지',
        'QuadLayers_pluginPage_section'
    );
    add_settings_field(
        'QuadLayer_checkbox_field_6',
        esc_attr__('가격', 'qlcp'),
       'QuadLayersCheckboxRender_6',
        '플러그인_QL_페이지',
        'QuadLayers_pluginPage_section'
    );
}

함수 QuadLayersSettingsSectionCallback(){
    echo wp_kses_post('QuadLAyers 커스텀 플러그인 설정 페이지');
}

함수 QuadLayersCheckboxRender_1(){
    $options = get_option('qlcp_options'); 
    ?>
    <input name="qlcp_options[QuadLayers_checkbox_field_1]" type="checkbox" /> 
    <?php } ?>값 = "1"> 확인    
}

함수 QuadLayersCheckboxRender_2(){
    $options = get_option('qlcp_options'); 
    ?>
    <input name="qlcp_options[QuadLayers_checkbox_field_2]" type="checkbox" /> 
    <?php } ?>값 = "1"> 확인    
}

함수 QuadLayersCheckboxRender_3(){
    $options = get_option('qlcp_options'); 
    ?>
    <input name="qlcp_options[QuadLayers_checkbox_field_3]" type="checkbox" /> 
    <?php } ?>값 = "1"> 확인    
}

함수 QuadLayersCheckboxRender_4(){
    $options = get_option('qlcp_options'); 
    ?>
    <input name="qlcp_options[QuadLayers_checkbox_field_4]" type="checkbox" /> 
    <?php } ?>값 = "1"> 확인    
}

함수 QuadLayersCheckboxRender_5(){
    $options = get_option('qlcp_options'); 
    ?>
    <input name="qlcp_options[QuadLayers_checkbox_field_5]" type="checkbox" /> 
    <?php } ?>값 = "1"> 확인    
}

함수 QuadLayersCheckboxRender_6(){
    $options = get_option('qlcp_options'); 
    ?>
    <input name="qlcp_options[QuadLayers_checkbox_field_6]" type="checkbox" /> 
    <?php } ?>값 = "1"> 확인    
}

이제 백엔드 화면을 다시 로드하거나 플러그인을 활성화하면 대시보드 메뉴 사이드바에 새 탭이 표시됩니다.

사용자 정의 WordPress 플러그인 관리 백엔드 만들기

WP 설정 API는 wp_options 데이터베이스 테이블에 이러한 모든 옵션이 포함된 배열을 저장합니다. 로컬 호스트에서 PHPMyAdmin을 열고 테이블에서 검색하여 확인할 수 있습니다.

새로 생성된 데이터이기 때문에 테이블의 맨 끝에 있어야 합니다.

qlcp 옵션 데이터베이스

물론 위 스크린샷의 데이터베이스에서 qlcp_options 배열은 비어 있습니다. 이것은 현재 모든 확인란이 선택 해제되어 있기 때문입니다. 그 중 일부를 확인하고 PHPMyAdmin으로 돌아와서 WP 설정 API가 데이터를 저장하는 방법을 확인할 수 있습니다.

qlcp 옵션 테스트
이제 데이터베이스에 옵션 배열을 저장할 수 있으므로 이러한 옵션을 가져와 프런트엔드에서 사용해야 합니다. 이 옵션을 사용하면 사용자가 웹사이트의 다양한 요소를 숨기거나 표시할 수 있습니다.

4. 프론트엔드 옵션

프론트엔드 옵션을 추가하려면 QuadLayers-frontend-init.php 파일에 다음 코드를 복사하여 붙여넣으면 됩니다.

이것은 배열의 백엔드 파일에 의해 저장된 데이터베이스에서 데이터를 가져옵니다.

그런 다음 옵션 배열에서 어떤 옵션이 true인지에 따라 제품 페이지의 특정 요소를 숨깁니다.

 <?php

$options = get_option('qlcp_options');

if(!is_string($options)):
    // 제목
    if(isset($options['QuadLayers_checkbox_field_1'])){       
    remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 );
    }

    // 수량
    if(isset($options['QuadLayers_checkbox_field_2'])){        
        add_filter( 'woocommerce_is_sold_individually',
            함수( $return, $product ) {
                true를 반환합니다.
            }, 10, 2 
        );
    }

    // SKU
    if(isset($options['QuadLayers_checkbox_field_3'])){        
        add_filter( 'wc_product_sku_enabled', 
            기능 ( $ 활성화 ) {          
                반환 $ 가능;
            } 
    );
    }
    
    // 메타
    if(isset($options['QuadLayers_checkbox_field_4'])){
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_meta', 40 );
    }
    
    // 설명 탭
    if(isset($options['QuadLayers_checkbox_field_5'])){
        add_filter( 'woocommerce_product_tabs', 
        함수( $tabs ) {
            설정 해제( $tabs['설명'] );
            $ 탭을 반환합니다.
            }, 11 
        );         
    }

    // 가격
    if(isset($options['QuadLayers_checkbox_field_6'])){
        add_filter( 'woocommerce_get_price_html', 
        함수($price){         
            반품 ;
            }
        );        
    }
엔디프;

모든 코드를 if(is_string($options)) 조건부로 묶습니다. 따라서 선택된 체크박스가 없는지 확인할 수 있으며 이 경우 데이터베이스 값은 문자열이 됩니다. 그러면 이 코드를 전혀 실행할 필요가 없습니다.

또한 익명 기능을 사용하고 있습니다. 명명된 함수와 정확히 동일하게 작동합니다. 그러나 우리는 이 초보자 친화적인 가이드를 위해 더 간단한 코드를 만들었습니다.

따라서 데이터베이스에 일부 값이 저장되어 있는 경우 이 코드의 각 기능은 존재하는 데이터베이스 배열의 특정 인덱스에 따라 특정 요소를 제거합니다.

초보자로서 우리가 데이터베이스와 어떻게 상호 작용했는지 이해하는 것이 중요합니다. 우리의 두 파일은 그것과 상호 작용하지만 이 파일들은 어쨌든 그들 사이에 연결되어 있지 않습니다. 데이터베이스에 여전히 필요한 값이 있기 때문에 한 파일을 제거해도 다른 파일은 계속 작동합니다.

그리고 그게 전부입니다. 이 시점에서 사용자 정의 WordPress 플러그인을 생성하여 제품 페이지에서 숨기거나 표시할 요소를 선택할 수 있어야 합니다.

백엔드

백엔드 사용자 정의 WordPress 플러그인

프론트엔드

프론트엔드 커스텀 워드프레스 플러그인

결론

이것은 맞춤형 WordPress 플러그인을 만드는 방법에 대한 가이드입니다. 사용자 정의 플러그인은 웹 사이트에 대한 매우 구체적인 기능을 원하고 전용 WP 플러그인의 압도적인 기능으로 사이트를 복잡하게 만들고 싶지 않은 경우 매우 유용합니다.

요약하자면 다음은 사용자 정의 플러그인을 만드는 주요 단계입니다.

  1. 메인 플러그인 파일 생성
  2. 백엔드 옵션 추가
  3. 프런트엔드 옵션 추가

기본 플러그인 파일 자체에는 사용자 정의 플러그인에 대한 백엔드 및 프론트엔드 파일이 포함되어야 합니다. 그런 다음 플러그인의 백엔드 옵션과 프론트엔드 옵션을 추가로 추가할 수 있습니다. 제품 페이지의 요소를 숨기는 사용자 정의 플러그인을 만들었습니다. 그러나 이러한 파일을 추가로 수정하여 필요한 특정 기능으로 플러그인을 만들 수 있습니다.

그럼에도 불구하고 여전히 전용 플러그인을 사용하고 싶다면 그렇게 할 수 있습니다. 하지만 유료 플러그인의 경우 플러그인을 수동으로 설치해야 합니다. WooCommerce Direct Checkout 및 WooCommerce Checkout Manager와 같은 플러그인을 사용하여 체크아웃 페이지와 같은 다른 페이지의 요소를 숨길 수도 있습니다.

한편, 다음은 귀하가 관심을 가질 만한 몇 가지 추가 게시물입니다.

  • 최고의 WooCommerce 체크아웃 플러그인
  • WooCommerce 직접 결제 링크를 만드는 방법
  • WooCommerce 주문을 자동 완성하는 최고의 플러그인

이제 WooCommerce에서 문제 없이 사용자 정의 플러그인을 개발할 수 있기를 바랍니다. 의견에 귀하의 경험을 공유해 주십시오.