从Woocommerce中删除JS文件产品编辑页面
问题描述:
我得到这个错误“Uncaught Error:选项'ajax'在连接到元素时不允许用于Select2”。同时更新产品变体。从Woocommerce中删除JS文件产品编辑页面
实际上有2个select2.js文件,一个来自Woocommerce和其他'WR PageBuilder'插件。虽然我重命名'WR PageBuilder'select2.js文件,然后它的工作正常。但该文件是编辑器所必需的。
我想仅从产品页面中删除该js文件。
我做了'wp_deregister_script()'和'wp_dequeue_script()',但没有发生任何事情。
这里是我的代码:
add_action('admin_init', 'functon_to_filter_script');
function functon_to_filter_script() {
global $typenow;
// when editing pages, $typenow isn't set until later!
if (empty($typenow)) {
// try to pick it up from the query string
if (!empty($_GET['post'])) {
$post = get_post($_GET['post']);
$typenow = $post->post_type;
}
}
if('product' == $typenow){
add_action('admin_enqueue_scripts', 'deregister_my_script', 100);
}
}
function deregister_my_script() {
wp_dequeue_script('wr-pagebuilder');
wp_deregister_script('wr-pagebuilder');
}
谁能给我一个解决方案吗?
答
这不起作用,因为您使用的操作错误。 看看这里的行动挂钩的正确用法: Hooks in Wordpress
你把admin_enqueue_scripts行动挂钩admin_init行动挂钩的内部。 尝试服用admin_init钩这样的外admin_enqueue_scripts:
global $typenow;
add_action('admin_enqueue_scripts', 'deregister_my_script', 100);
function deregister_my_script() {
if (!empty($_GET['post'])) {
$post = get_post($_GET['post']);
$typenow = $post->post_type;
}
if('product' == $typenow){
wp_dequeue_script('wr-pagebuilder');
wp_deregister_script('wr-pagebuilder');
}
}
我这样做,但没有运气。 –
问题是什么? – Kris
我是这样做的:)。从'WR PageBuilder'插件中删除js文件,然后再从function.php钩住所有页面的excpet产品页面。现在它工作正常:) –