WordPress에서 플러그인이 활성화되어 있는지 확인하는 방법 [ 3 WAYS ]

게시 됨: 2020-08-08

플러그인이 WordPress에서 활성화되어 있는지 확인 WordPress 개발자로서 플러그인을 개발할 때 코드에서 가장 일반적인 검사 중 하나는 플러그인 활성화 상태입니다. 플러그인이 활성화되어 있는지 확인해야 하는 몇 가지 이유가 있습니다. 몇 가지를 언급하자면 종속 플러그인이 활성 상태인지 또는 동일한 작업을 수행하는 유사한 플러그인인지 확인할 수 있습니다.

두 경우 모두 대상 플러그인이 활성 상태인지 확인하기 위해 플러그인 기본 파일에 체크를 추가해야 합니다. WooCommerce 클래스를 확장하는 WooCommerce 플러그인을 개발하는 경우의 전형적인 예입니다.

예를 들어 WooCommerce 결제 게이트웨이 플러그인을 개발할 때 플러그인이 활성화된 직후 또는 가급적이면 플러그인 활성화 후크 중에 WooCommerce가 활성화되어 있는지 확인해야 합니다.

WordPress 플러그인이 활성 상태인지 확인

운 좋게도 WordPress 코어에는 특정 플러그인이 활성화되어 있는지 확인하고 true 또는 false를 반환하는 메서드 또는 기능을 사용할 준비가 되어 있습니다.

is_plugin_active 워드프레스

이 함수는 boolean - true or false )을 반환하며 특히 활성화 후크 중에 코드에 쉽게 통합할 수 있습니다.

확인 중인 플러그인이 활성화되지 않은 경우 사용자가 플러그인을 설치하도록 헤더 알림을 표시할 수 있습니다.

사용자가 플러그인의 기능과 충돌할 가능성이 있는 다른 플러그인을 비활성화하도록 하려는 경우에도 동일한 기능을 적용할 수 있습니다.

함수 is_plugin_active() 빠른 검토

is_plugin_active() 함수를 빠르게 살펴보고 프로젝트에서 효과적으로 사용하는 방법에 대해 자세히 알아보겠습니다.

is_plugin_active( string $plugin )

이 함수는 플러그인 디렉토리의 플러그인 상대 경로에 대한 경로를 나타내는 문자열 매개변수를 사용합니다.

 기능 is_plugin_active( $plugin ) {
    return in_array( $plugin, (array) get_option( 'active_plugins', array() ) ) || is_plugin_active_for_network( $plugin );
}

예를 들어 WooCommerce의 경로는 woocommerce/woocommerce.php 입니다.
아래 이미지:
WooCommerce Basefile 파일 경로

is_plugin_active() 함수는 다음 코드 조각을 사용하여 백엔드에서 플러그인이 활성화되어 있는지 확인하는 데 사용할 수 있습니다.

 <?php
/**
* 플러그인을 감지합니다. 관리 영역에서만 사용하십시오.
*/
if ( is_plugin_active( '플러그인 디렉토리/플러그인 파일.php' ) ) {
//플러그인 활성화
}

예를 들어 WooCommerce가 활성화되어 있는지 확인하려면 다음 코드를 사용하여 확인할 수 있습니다.

 <?php
/**
* 관리자 영역에서 WooCommerce 플러그인이 활성화되어 있는지 확인
*/
if ( is_plugin_active( '우커머스/우커머스.php' ) ) {
//WooCommerce 플러그인이 활성화되었습니다.
}

플러그인 기본 파일 및 기본 디렉토리

보시다시피 위의 이미지를 사용하여 설명한 대로 WooCommerce 플러그인 기본 이름과 폴더를 사용했습니다.
플러그인의 기본 이름은 기본 파일인 단일 파일 플러그인에 대한 파일 이름이며 때로는 디렉토리/폴더와 일치하지만 모든 경우는 아닙니다. 일부 플러그인은 다릅니다.

다중 사이트에서 플러그인이 활성 상태인지 확인

WordPress 다중 사이트의 경우 개발자가 플러그인이 다중 사이트 네트워크에서 활성화되어 있는지 확인할 수 있도록 설계된 기능이 있습니다. 기능은 다음과 같습니다.

is_plugin_active_for_network( string $plugin )

이 함수는 is_plugin_active( string $plugin ) 함수처럼 작동하며 플러그인이 WordPress 다중 사이트 네트워크에서 활성 상태인지 확인하는 데 동일한 방식으로 적용할 수 있습니다.

 <?php
기능 is_plugin_active_for_network( $plugin ) {
    if ( ! is_multisite() ) {
        거짓을 반환합니다.
    }
 
    $plugins = get_site_option( 'active_sitewide_plugins' );
    if ( isset( $플러그인[ $플러그인 ] ) ) {
        true를 반환합니다.
    }
 
    거짓을 반환합니다.
}

플러그인이 활성 상태인지 확인하는 다른 방법

플러그인이 활성 상태인지 확인하기 위해 사용할 수 있는 다른 방법이 있습니다. 기본 PHP 함수 class_exists 또는 function_exists를 사용하여 확인할 수 있습니다. 이 메소드는 플러그인 또는 함수의 클래스가 각각 존재하는지 확인합니다.

function_exists()를 사용하여 플러그인이 활성 상태인지 확인

플러그인의 기능이나 메소드를 알고 있다면 아래 스니펫과 같이 function_exists 메소드를 사용하여 확인할 수 있습니다.

 <?php
if( function_exists( '플러그인_기능' ) ) {
// 플러그인이 활성화됨
}

class_exists()를 사용하여 플러그인이 활성 상태인지 확인

플러그인의 기본 클래스를 알고 있다면 아래 스니펫에서와 같이 class_exists 메소드를 사용하여 확인할 수 있습니다.

 <?php
if( class_exists( '플러그인_클래스' ) ) {
// 플러그인이 활성화됨
}

아래 코드 조각과 같이 플러그인이 plugins_loaded 후크에서 활성화되어 있는지 확인하기 위해 이러한 방법 중 하나를 후크할 수 있습니다.

 <?php
/*
* 플러그인이 활성 상태인지 테스트
*/

기능 njengah_is_plugin_name_active() {
if( class_exists( '플러그인_클래스' ) ) {

// 활성이므로 여기에서 논리를 수행합니다.

}
}
add_action( '플러그인 로드', 'njengah_is_plugin_name_active' );

결론

이 게시물에서는 다른 플러그인이나 테마를 개발할 때 플러그인이 활성화되어 있는지 확인하는 다양한 방법을 강조했습니다. 이는 모든 WordPress 개발 작업에 적용할 수 있는 유용한 방법입니다.

유사한 기사