고급 맞춤 입력란 docs는 항상 <?php if(get_field('repeater_field_name')): ?>
과 같은 확인을 시작하도록 권장하지만 플러그인이 활성화되지 않으면이 줄에서 치명적인 오류가 발생합니다. 어떻게 피하는거야?고급 맞춤 필드 플러그인이 활성화되지 않은 경우 치명적인 오류를 방지하는 방법은 무엇입니까?
1
A
답변
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
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()
을 정의하고 더 이상 필요하지 않을 때를 제거합니다.
감사합니다. 하위 질문 : ACF를 사용하는 것이 가장 좋은 방법이라고 생각하십니까? 이것은 상대적으로 장황하고 매번 한 번씩 ACF 데이터가 이상적이지 않은 사운드를 출력합니다. 어떠한 제안? – drake035
네, 자주 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
실제로 ACF를 주제에 포함시키는 것이이 문제에 전혀 도움이되지 않습니다. – drake035