2017-04-09 2 views

답변

1

당신은 PHP의 function_exists() 그래서 등을 이용하여 단지 시도 할 수 있습니다 :

<?php 
    if (function_exists('get_field') && get_field('repeater_field_name')): 
     // do ACF things 
    endif; 
?> 

&&is a "short-cut" operator 그것이 R에 L에서 확인하고 함수가 존재하지 않는 경우 전체 if 조건을 건너 뛰고 바로 구제 및 것이기 때문에 (즉, 플러그인은 사용할 수 없음) get_field('repeater_field_name')이 true로 평가되는지 확인하지 않습니다. 따라서 두 조건의 순서를 바꿀 수 없거나 플러그인을 사용할 수없는 상태에서 작동하지 않습니다.

+0

감사합니다. 하위 질문 : ACF를 사용하는 것이 가장 좋은 방법이라고 생각하십니까? 이것은 상대적으로 장황하고 매번 한 번씩 ACF 데이터가 이상적이지 않은 사운드를 출력합니다. 어떠한 제안? – drake035

+1

네, 자주 ACF에 의존하는 주제가 많은 경우마다 매번 포인트 검사를 자주하지 않습니다. 사이트가 없으면 사이트가 "고장났다"는 이유가 무엇입니까? 매번 확인하고 싶지 않은 경우 두 가지 제안 : 1) ACF를 테마에 포함하고 플러그인으로 사용하지 마십시오. https://www.advancedcustomfields.com/resources/including-acf-in -a-plugin-theme/또는 2) 플러그인 대신 mu-plugins에 ACF 넣기 https://codex.wordpress.org/Must_Use_Plugins – squarecandy

+0

실제로 ACF를 주제에 포함시키는 것이이 문제에 전혀 도움이되지 않습니다. – drake035

0

https://codex.wordpress.org/Function_Reference/is_plugin_active을 사용하여 플러그인이 활성화되어 있는지 확인할 수는 있지만 관리자 측에서만 작동합니다. 프론트 엔드에서는 plugin.php를 포함시켜야합니다. 가장 깨끗한 해결책은 단순히이 줄을 자신의 래퍼 함수로 바꾸는 것입니다.

function my_get_field($fld) { 
    if function_exists('get_field') return get_field($fld); 
    return false; //or whatever value suits your purpose 
} 

또는이 임시 상황 인 경우, 그냥 자신의 더미 get_field()을 정의하고 더 이상 필요하지 않을 때를 제거합니다.