2017-09-20 13 views
1

ログインユーザー用のコードを実行しないでください。は、私が実行しているから、このスクリプトを停止しようとしている

何のスクリプトが行うことはJavaScriptファイルに延期し、非同期属性を追加することです。しかし、それはログインした訪問者に行われた場合サイトを壊す。続き

はのfunctions.phpファイル内にあるコードです:

function js_async_attr($tag) 
{ 
    if (!is_user_logged_in()) 
    { 
     $scripts_to_exclude = array('script1.js', 'script2.js', 'script3.js'); 
     foreach($scripts_to_exclude as $exclude_script) 
     { 
      if(true == strpos($tag, $exclude_script)) 
      return $tag; 
     } 
     return str_replace(' src', ' defer async src', $tag); 
    } 
} 
add_filter('script_loader_tag', 'js_async_attr', 10); 

しかし、それだけログアウト訪問者のために実行することになって、正しく動作していません。しかし、それはログアウトした訪問者のために実行されていないし、ログインした訪問者のページを壊す。

答えて

1

ログインしているステータスに関係なくフィルタを追加するので、いずれかの方法で値を返す必要があります。 ifブロックの外に、関数の最後の行としてreturn $tag;を追加するだけです。

関連する問題