WP重力表添加无显示

我正在WordPress主题内创建一个自定义模板, 因为我的模板与活动主题的布局完全不同, 因此模板具有自己的页眉和页脚, 并且在两者中都正确声明了wp_head(); 和wp_footer(); 分别。
在我的模板代码中, 我试图使用do_shortcode显示重力形式, 但是没有形式显示。当我检查该区域时, 可以看到表单代码, 但是.gform_wrapper div中添加了style =” display:none” 。
还有一点需要注意, 重力形式在我的网站的其余部分(使用活动主题的所有页面/帖子)中都可以正常工作, 我的自定义模板上只有这个问题。
任何建议, 不胜感激。
谢谢
#1尽管这是一个古老的问题, 但在搜索此问题时仍然会首先出现, 因此我添加了解决方案, 以防其他人也在搜索。如果你的主题通过在functions.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之后调用它们。你可以通过在主题的functions.php文件中添加以下代码来做到这一点:
add_filter('gform_init_scripts_footer', 'init_scripts'); function init_scripts() { return true; }

#2这是因为在表单上使用了条件逻辑。只要存在条件逻辑, 整个表格就会设置为显示:无;然后使用javascript仅显示应显示的字段。
但是, 这需要Gravity Forms能够使用内置的queue函数内置的WordPress输出必要的Javascript … 在你的页脚中输出Javascript。
你的主题的footer.php文件中可能没有此函数调用:
< ? php wp_footer(); ?>

所有主题都应具有的此函数调用(但很多人忘记了), 使插件能够在主题的页脚中动态输出代码。如果不存在, 则主题无法输出必要的代码。
这很可能是你的表单无法正确显示的原因。
答案来自:http://www.gravityhelp.com/question/why-is-there-a-style-attribute-of-displaynone-being-add-my-form-isnt-showing-up/
#3我终于有了这个工作。
为了使条件逻辑起作用, 必须注销WordPress随附的jQuery, 必须将1.8.3加载到标题中, 并且必须将gravityforms.min.js, conditional_logic.min.js和jquery.maskedinput.min.js加载到页脚:
< ?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'); ?>

#4我的WP主题调用的是旧版jQuery(由Google托管), 这导致display:none属性应用于我的Gravity Forms。我将入队脚本更新为最新版本的jQuery, 从而解决了该问题。
#5我也有这个问题, 实际的解决方案是将gravity_form_enqueue_scripts($ form_id)添加到你的header.php文件中。
从Gravity表单支持文档本身开始:https://www.gravityhelp.com/documentation/article/embedding-a-form/#enqueue-scripts-and-styles
#6我仅通过停用名为Autoptimize的插件就可以解决我的问题, 该插件可以优化将CSS和JavaScript代码连接在一起的网站并进行压缩。
一旦发现它就很明显了。
#7我刚才遇到了这个问题。
两个问题:这个旧主题使用的是jQuery 1.5.1, 捆绑的所有插件都是为较旧的jQuery编写的。由于旧的jQuery版本以及我已重命名条件逻辑字段, 因此Gravity Forms中的条件逻辑无法正常工作。
删除/修复了一些不正确的条件逻辑下拉菜单, 并在站点上升级了jQuery版本之后, 事情又开始恢复正常。
#8此问题可能是由页面上的任何其他脚本引发错误引起的。检查控制台以确保没有损坏的脚本
#9对我而言, 原因是FireFox中的控制台错误, 与以下内容有关:
jQuery(document).bind('gform_post_render', function(ev){ console.log(event, ev); });

#10以我为例, 我认为原因是:我将Gravity短代码放入了(也许它检测到并在其iframe中插入了” display:none” ?)
< div id="layer_2" style="display: none"> [gravityform id=123 title=false ajax=true] < /div>

框架代码:
< iframe style='display:none; width:0px; height:0px; ' src='http://www.srcmini.com/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代码, Gform也可以在” iframe style = display:none” 下正常工作。真正的原因是:缺少一个”
< /div>

在页面代码中。
#11你是否尝试过从.gform_wrapper div中删除style =” display:none” ?或将其更改为style =” display:block”
#12我认为这不会有所帮助, 但也许可以尝试以下方法:
.gform_wrapper{ display:block !important; }

我知道内联样式会覆盖所有样式表, 但是!important帮助我覆盖了一些插件样式。
也尝试在插件文件中搜索style =” display:none” 。使用Textwrangler或其他编辑器, 你可以在其中搜索多个文件。这对于编辑主题和插件也有很大帮助。
#13.gform_wrapper类本身是否设置了” display:none” ?然后只需在” 重力形式” 的css文件中进行更改即可。
但是, 包装器可能具有一个ID或另一个不能设置display:none的类。
【WP重力表添加无显示】最后但并非最不重要的一点是, 包装程序可能会出现损坏的jQuery动画, 这可能就是为什么它保持隐藏状态的原因。

    推荐阅读