我已经在我的网站上包含了jQuery, 但是当在Gravity Forms中使用一些条件逻辑时, 它会再次包含jQuery以及它自己的脚本。
输出如下:
<
script type='text/javascript' src='http://www.srcmini.com//localhost:8080/wp-includes/js/jquery/jquery.js?ver=1.11.3'>
<
/script>
<
script type='text/javascript' src='http://www.srcmini.com//localhost:8080/wp-includes/js/jquery/jquery-migrate.min.js?ver=1.2.1'>
<
/script>
<
script type='text/javascript' src='http://www.srcmini.com//localhost:8080/wp-content/plugins/gravityforms/js/jquery.json.js?ver=1.9.14'>
<
/script>
<
script type='text/javascript' src='http://www.srcmini.com//localhost:8080/wp-content/plugins/gravityforms/js/gravityforms.min.js?ver=1.9.14'>
<
/script>
<
script type='text/javascript' src='http://www.srcmini.com//localhost:8080/wp-content/plugins/gravityforms/js/conditional_logic.min.js?ver=1.9.14'>
<
/script>
我想做的是保留Gravity Form的脚本, 但不包括jQuery和jQuery migration。我自己包括这些人, 不希望GF为我做这些。
我已经搜索了包含这些脚本的句柄, 但是找不到正确的钩子。我有以下内容, 但它也排除了GF脚本, 这显然不是我想要发生的事情:
function remove_unwanted_assets() {// Gravity Forms plugin.
wp_deregister_script('jquery');
}add_action('wp_enqueue_scripts', 'remove_unwanted_assets', 100);
这似乎排除了GF的一切。
任何帮助或指导, 我们将不胜感激。谢谢。
#1可靠地” 注销” 默认jQuery的唯一方法是将add_action()调用的优先级保持为10。这是因为Gravity Forms使脚本的优先级为11入队。然后, 你需要注册自己的jQuery版本在相同的句柄下:
function so_33280386_alter_assets() {
// De-register the default version of jQuery
wp_deregister_script( 'jquery' );
// Register a new version of jQuery under the same handle
wp_register_script( 'jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js', false, '1.9.1', true );
}
add_action('wp_enqueue_scripts', 'so_33280386_alter_assets', 10);
#2我试图完成同样的事情, 但发现了一个简单的解决方法。我在自己的已编译js文件中添加了jQuery, 所以我不希望WordPress的文件存在其中。只需注销脚本, 然后在不添加源的情况下重新注册它。
wp_deregister_script( 'jquery' );
wp_register_script( 'jquery', '', '', '', true );
我还使用其他一些代码片段来保持Ajax加载正确。
function gravity_js_to_footer() {
return true;
}
add_filter("gform_init_scripts_footer", "gravity_js_to_footer");
// Fix the ajax jquery inline code issue when gravity js is being called in the footer
//https://bjornjohansen.no/load-gravity-forms-js-in-footer
add_filter( 'gform_cdata_open', 'wrap_gform_cdata_open' );
function wrap_gform_cdata_open( $content = '' ) {
$content = 'document.addEventListener( "DOMContentLoaded", function() { ';
return $content;
}
add_filter( 'gform_cdata_close', 'wrap_gform_cdata_close' );
function wrap_gform_cdata_close( $content = '' ) {
$content = ' }, false );
';
return $content;
}
结合这些内容, 我就可以不调用排队jquery, 也可以在页脚中包含所有内容。
【WordPress(如何禁用jQuery的Gravity Forms包含())】祝好运
推荐阅读
- WordPress(如何在搜索结果中从$ wp_query获取所有帖子())
- WordPress(我如何仅获得单个帖子的RSS摘要())
- WordPress-将Subscribe2(或任何其他插件)小部件硬编码到模板中
- WordPress按术语ID获取分类名称
- WordPress失败-我的主题登录(注销)
- WordPress错误(找不到选项页面)
- WordPress ENV/WP_HOME/WP_SITE_URL
- 插件和主题的WordPress目录权限
- WordPress在一页上显示所有页面