programing

Word Press:플러그인이 설치되어 있는지 확인합니다(ACF).

megabox 2023. 2. 7. 19:41
반응형

Word Press:플러그인이 설치되어 있는지 확인합니다(ACF).

예방하고 싶다fatal errorACF 플러그인이 비활성화되거나 설치되지 않은 경우.

플러그인의 주요 기능은 다음과 같습니다.get_field()제가 이 코드를 썼는데functions.php확인 대상:

if ( !function_exists('get_field') ) {
  function get_field() {
    echo '<span>plugin ACF is not installed</span>';
  }
}

이게 허용 가능한 관행이라고 말해줘요?

ACF 자체는 프레임워크가 로드되었는지 확인하기 위해 체크를 사용합니다.이미 다른 플러그인 또는 테마에 의해 포함 및 호출된 경우 ACF는 자신의 클래스를 다시 인스턴스화하지 않습니다.클래스 체크를 사용하면 다음과 같이 됩니다.

if (!class_exists('ACF')) {
    //  The ACF class doesn't exist, so you can probably redefine your functions here
}

ACF의 존재에 의존하는 플러그인으로 사용하고 있기 때문에, 만약 비활성화 되어도 사이트 전체가 폭발하지 않습니다.

우선 이것은 메인 플러그인 기능이 아니라 그 중 하나입니다.아마도 테마에서 플러그인 사용자가 가장 일반적으로 사용합니다.또 하나는the_field()(실제로 값을 인쇄합니다).get_field()이 반환됩니다).

커스텀 기능을 정의하는 연습에 대해서는 괜찮습니다.단, ACF 필드가 예상되는 모든 장소에 긴 메시지를 인쇄하는 것은 아닙니다.그 중 일부는 짧을 수 있습니다(숫자).이 메시지는 레이아웃을 깨집니다.좀 더 짧게 인쇄하는 게 낫지, 이모.

또한.function_exists적절한 체크가 아닌is_plugin_activeACF는 테마 프레임워크 또는 기타 플러그인이 있는 라이브러리로도 출하할 수 있기 때문입니다.

다른 옵션은 프런트엔드의 ACF 의존성을 완전히 제거하는 것입니다.필드 내용은 다음과 같이 출력할 수 있습니다.get_post_meta()프런트 엔드에 ACF 플러그인이 완전히 로드되지 않도록 합니다.상세한 것에 대하여는, 다음의 2개의 투고를 참조해 주세요.

http://www.billerickson.net/code/disable-acf-frontend/

http://www.billerickson.net/advanced-custom-fields-frontend-dependency/

이를 위한 워드프레스 기능이 있습니다.

is_plugin_active('advanced-custom-fields/acf.php');

참고: 프리미엄 버전의 플러그인으로 변경할 때 문제가 발생할 수 있습니다.

네, 플러그인 기능이 있는지 확인할 수 있는 좋은 방법입니다.

또한 is_plugin_active 함수를 사용하여 플러그인이 활성화되었는지 확인할 수도 있습니다. 이 함수는 어딘가에서 다시 선언될 수 있기 때문입니다.

당신이 그렇게 하는 주된 이유는 치명적인 오류를 막기 위해서라고 생각하기 때문에 어떤 방법을 사용하든 상관없습니다.

언급URL : https://stackoverflow.com/questions/40595832/wordpress-check-if-plugin-is-installed-acf

반응형