중력 형태 추가 디스플레이 없음
테마에 템플릿 WordPress를 했습니다.템플릿은 액티브테마와는 전혀 다른 레이아웃이기 때문에 템플릿에는 독자적인 헤더와 푸터가 있으며, 그 양쪽의 내부에 적절하게 선언되어 있습니다.wp_head();
★★★★★★★★★★★★★★★★★」wp_footer();
각각 다음과 같다.
템플릿 코드 내에서 do_shortcode를 사용하여 중력 폼을 표시하려고 하는데 폼이 표시되지 않습니다., 폼코드가 요.style="display:none"
.gform_wrapper
div를 선택합니다.
다시 한 번 말씀드리지만, 중력 폼은 사이트의 나머지 부분(액티브 테마를 사용한 모든 페이지/투고)에서 완벽하게 작동하고 있습니다. 커스텀 템플릿에만 문제가 있습니다.
어떤 제안이라도 감사합니다.
감사해요.
오래된 질문이지만, 제가 이 문제를 검색했을 때 가장 먼저 나왔기 때문에, 다른 사람도 검색할 경우에 대비하여 솔루션을 추가합니다.테마가 다음 코드 행 중 하나 이상을 함수에 포함시킴으로써 스크립트를 바닥글(퍼포먼스상의 이유로 자주 권장)로 이동하는 경우.php:
remove_action('wp_head', 'wp_print_scripts');
remove_action('wp_head', 'wp_print_head_scripts', 9);
add_action('wp_footer', 'wp_print_scripts', 5);
add_action('wp_footer', 'wp_print_head_scripts', 5);
gravity Forms 스크립트도 바닥글로 이동해야 jQuery 뒤에 호출됩니다.테마의 기능에 다음 코드를 추가하면 됩니다.php 파일:
add_filter('gform_init_scripts_footer', 'init_scripts');
function init_scripts() {
return true;
}
폼에 조건부 논리가 사용되고 있기 때문입니다.조건부 로직이 존재할 때마다 전체 폼이 표시되도록 설정됩니다.none; 다음으로 javascript를 사용하여 표시되는 필드만 표시합니다.
그러나 Gravity Forms가 WordPress 내장 enqueue 기능을 사용하여 필요한 Javascript를 출력할 수 있어야 합니다.바닥글에 Javascript가 출력됩니다.
테마 바닥글에 이 함수 호출이 없을 수 있습니다.php 파일:
<? php wp_footer(); ?>
이 함수 호출은 모든 테마가 가지고 있어야 하지만 많은 사람들이 포함시키는 것을 잊어버리고 있기 때문에 플러그인이 테마의 바닥글에 있는 코드를 동적으로 출력할 수 있습니다.테마가 없으면 테마가 필요한 코드를 출력할 수 없습니다.
이것이 폼이 올바르게 표시되지 않는 이유일 가능성이 높습니다.
답변: http://www.gravityhelp.com/question/why-is-there-a-style-attribute-of-displaynone-being-added-my-form-isnt-showing-up/
드디어 일을 시작했어
조건부 로직이 기능하려면 WordPress와 함께 제공되는 jQuery를 등록 해제하고 헤더 및 gravityforms.min.js, conditional_logic.min.js 및 jquery.maskedinput.js에 1.8.3을 로드해야 합니다.
<?php
function modify_jquery_version() {
if (!is_admin()) {
wp_deregister_script('jquery');
wp_register_script('jquery',
'https://code.jquery.com/jquery-1.8.3.min.js', false, '1.8.3');
wp_register_script('migrate',
'https://code.jquery.com/jquery-migrate-1.4.1.min.js', false, '1.4.1');
wp_enqueue_script('jquery');
wp_enqueue_script('migrate');
}
}
add_action('wp_enqueue_scripts', 'modify_jquery_version');
function footer_load() {
if (!is_admin()) {
wp_enqueue_script('gravity','/wp-content/plugins/gravityforms/js/gravityforms.min.js','','',true);
wp_enqueue_script('conditional','/wp-content/plugins/gravityforms/js/conditional_logic.min.js','','',true);
wp_enqueue_script('masked','/wpcontent/plugins/gravityforms/js/jquery.maskedinput.min.js','','',true);
}
}
add_action('wp_enqueue_scripts', 'footer_load');
?>
내 WP 테마는 이전 버전의 jQuery(Google 호스팅)를 호출하는 것이었고, 그로 인해 디스플레이: none property가 내 Gravity Forms에 적용되었습니다.enqueue 스크립트를 jQuery의 최신 버전으로 업데이트하여 문제를 해결했습니다.
이 은 is도이 、 is is i is is is i i i i를 추가하는 것입니다.gravity_form_enqueue_scripts($form_id)
" " " " " " " php 를 참조해 주세요.
Gravity 양식 자체 지원 문서: https://www.gravityhelp.com/documentation/article/embedding-a-form/ #enqueue-frash-and-style
이것이 도움이 될 것 같지는 않지만, 아마도 이것을 시도해 볼 수 있을 것이다.
.gform_wrapper{
display:block !important;
}
은 알고 있지만, ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★」!important
몇 가지 플러그인 스타일을 덮어쓰는 데 도움이 되었습니다.
도 한번 .style="display:none"
플러그 인 파일에 격납됩니다.문자 교환하다이것은 테마나 플러그인의 편집에도 큰 도움이 됩니다.
CSS와 JavaScript 코드를 연결하는 웹 사이트를 최적화하는 Autoptimize라는 플러그인을 비활성화하고 압축하는 것만으로 문제를 해결할 수 있었습니다.
일단 발견하면 꽤 뻔해.
나는 방금 이 문제에 부딪쳤다.
두 가지 문제:이 오래된 테마는 jQuery 1.5.1을 사용하고 있으며 번들된 모든 플러그인은 오래된 jQuery용으로 작성되었습니다.이전 jQuery 버전과 조건부 논리 필드의 이름을 변경했기 때문에 Gravity Forms의 조건부 로직이 작동하지 않았습니다.
잘못된 조건의 로직 드롭 다운 중 일부를 삭제/수정하고 사이트에서 jQuery 버전을 업그레이드한 후 작업이 다시 시작되었습니다.
이 문제는 페이지의 다른 스크립트에 의해 발생할 수 있습니다.콘솔이 고장난 스크립트가 없는지 확인합니다.
원인은 다음과 관련된 FireFox 콘솔 오류입니다.
jQuery(document).bind('gform_post_render', function(ev){
console.log(event, ev);
});
임시 수정으로 이것을 에 추가했습니다.<theme_dir>/footer.php
, 직전</body></html>
:
<script>
jQuery('.gform_wrapper').show();
</script>
가 "jQuery" "div"를 div를 됩니다..gform_wrapper
를 누릅니다
이사하려고 .wp_footer();
그리고 다른 사이트에서도 제안할 수 있습니다.아무것도 안 먹혔어.캐시 비활성화, 캐시 삭제, 플러그인 삭제 등도 시도했습니다.JS 에러는 없습니다.양식이 표시되지 않습니다.
한 가지 주의할 점은 다음 두 가지 조건이 충족될 때만 문제가 발생한다는 것입니다.
- 사용자가 로그인하지 않았습니다.
- 이 형식은 조건부 논리를 사용합니다.
둘 중 하나가 없으면 폼이 정상적으로 로드됩니다.
왜 이런 일이 일어나는지 알게 되면 여기에 더 많은 정보를 추가하겠습니다.
편집:
주요 이슈는 그것이 해고되지 않고 있다는 것이다.모든 http 요구가 종료되지 않은 경우(보류 중인 css, js, 이미지 등) 발생합니다.다음 코드(https://stackoverflow.com/a/49724894/1582649)에서 가져온 코드)는 이벤트를 강제하고 폼을 표시합니다.
window.document.dispatchEvent(new Event("DOMContentLoaded", {
bubbles: true,
cancelable: true
}));
콘솔에 보류 중인 요청이 표시되지 않기 때문에 아직 이 문제가 발생하는 이유를 알 수 없습니다.모든 것이 정상적으로 로딩되고 있는 것 같습니다.사이트 전체를 다른 서버에 복사하려고 했는데 거기서 작동해요.이것은 호스트 프로바이더와 관련된 것이라고 생각하게 합니다.일종의 은닉처일 수도 있어
일단, 그 코드 조각은 그 뒤에 남겨둘게요<theme>/footer.php
.
제 경우 솔루션은 매우 단순했습니다.방금 jQuery Migrate Helper 플러그인을 비활성화했습니다.바로 그겁니다.
내 경우 플러그인 "Gravity Forms - Save & Continue Auto Load"를 비활성화하면 문제가 해결되었습니다.
제거해 보셨습니까?style="display:none"
에서.gform_wrapper
div? 아니면 로 바꾸거나style="display:block"
저 같은 경우에는 Gravity 단축코드를 에 넣었기 때문이라고 생각했습니다(그래서 "display: none"이 검출되어 iframe에 삽입되었을 가능성이 있습니다).
<div id="layer_2" style="display: none">
[gravityform id=123 title=false ajax=true]
</div>
프레임 코드:
<iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_16' id='gform_ajax_frame_16'></iframe>
div에서 display: none을 삭제했기 때문에 Gfrom은 정상적으로 동작했습니다.페이지에 스크립트를 추가했습니다.
jQuery(document).ready(function() { jQuery("#_layer_2").attr("style", "display: none"); });
단, 위의 JS 코드가 없어도 "iframe style=display: none"으로 Gform은 정상적으로 동작합니다.진짜 이유는 하나 부족해서였다.
</div>
페이지 코드에 있습니다.
.gform_wrapper 클래스 자체에 대해 "display:none"이 설정되어 있습니까?그라비티 폼의 css 파일에서 변경해 주세요.
그러나 래퍼에는 display:none을 설정할 수 있는 ID 또는 다른 클래스가 있을 수 있습니다.
마지막으로 래퍼에 대해 끊어진 jQuery 애니메이션이 있을 수 있습니다.그래서 숨겨진 채로 있을 수 있습니다.
언급URL : https://stackoverflow.com/questions/17260059/gravity-forms-adding-display-none
'programing' 카테고리의 다른 글
miniated javascript stack trace를 소스 맵에 대해 실행하여 적절한 오류를 얻으려면 어떻게 해야 합니까? (0) | 2023.03.31 |
---|---|
JSON 텍스트에는 2개 이상의 옥텟이 포함되어 있어야 합니다. (0) | 2023.03.31 |
Google API 콘솔을 다른 개발자와 공유하는 방법 (0) | 2023.03.31 |
'rufous-sandbox'라는 바디 태그에 이상한 iframe이 추가됨 (0) | 2023.03.31 |
MongoDB mongorestore 오류: local:::facet::_S_create_c_locale 이름이 잘못되었습니다. (0) | 2023.03.31 |