2017-08-05 88 views
0

我得到这个错误“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'); 
} 

谁能给我一个解决方案吗?

回答

0

这不起作用,因为您使用的操作错误。 看看这里的行动挂钩的正确用法: 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'); 
    } 

} 
+0

我这样做,但没有运气。 –

+0

问题是什么? – Kris

+0

我是这样做的:)。从'WR PageBuilder'插件中删除js文件,然后再从function.php钩住所有页面的excpet产品页面。现在它工作正常:) –

相关问题