2017-08-05 17 views
0

このエラーが発生しました。「キャッチされていないエラー:オプション 'ajax'は、要素にアタッチされているときにSelect2に対して許可されていません。商品バリエーションを更新します。Woocommerceプロダクト編集ページからJSファイルを削除します

実際には、2つのselect2.jsファイルがあります.1つはWoocommerceのもので、もう1つは '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

アクションを間違って使用しているため、これは機能しません。 アクションフックの正しい使用方法については、ここを見て:あなたはadmin_initアクションフックの内側admin_enqueue_scriptsアクションフックを入れている Hooks in Wordpress

。 このような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ファイルを削除してから、excepプロダクトページのすべてのページに対してfunction.phpから再度フックします。そして今それはうまく動作します:) –

関連する問題