2017-04-05 9 views
1

以前にエンキューされていない場合にのみ素晴らしいフォントをエンキューしようとしています。wordpressにエンキューする前にawesomeフォントが存在するかどうかを確認してください。

これは私のコードです:

function stylesheet_installed($array_css) 
{ 
    global $wp_styles; 

    foreach($wp_styles->queue as $style) 
    { 
     foreach ($array_css as $css) 
     { 
      if (false !== strpos($wp_styles->registered[$style]->src, $css)) 
       return 1; 
     } 
    } 
    return 0; 
} 

この関数はOKのようです。

function add_scripts(){ 
    $font_awesome = array('font-awesome', 'fontawesome'); 
    if (stylesheet_installed($font_awesome) === 0) 
    { 
     // ALWAYS ENQUEUE FONT-AWESOME, NO MATTER THE CONDITION ABOVE 
     wp_enqueue_style('font-awesome', '//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css'); 
    }  
} 
add_action('wp_enqueue_scripts', 'add_scripts'); 

ただし、font-awesomeは常にエンキューされるため、何かが間違っています。

私はこれに固執していますが、何か助けに感謝します、ありがとう!

私は私のテーマのフォント(とカスタムCSS)を実現するために、この方法を行うために使用
+0

は、最後に私が '' add_action(「wp_enqueue_scripts」、「add_scripts」)に低い優先度を追加することで問題を解決しました所望の値。 font-awesomeが以前にインストールされていれば1を返し、そうでなければ0を返します。追加する前に、優先度は常に0を返します。 – JCdotNET

答えて

1

function custom_styles() { 
    wp_register_style('fontawesome', '//maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css', false, '4.6.1'); 
    wp_enqueue_style('fontawesome'); 
} 
add_action('wp_enqueue_scripts', 'custom_styles'); 

は、Googleフォントや必要な任意のCSSを追加するためにこれを使用することができます。

+0

ありがとうございました。font-awesomeが以前にインストールされていた場合、スタイルシートのインストールされたヘルパー関数を使用している理由はありません。関数が1を返す場合、あなたのコード(または私のもの)は実行されませんが、実行されます。 – JCdotNET

+0

スタイルを登録する前に次の行を追加できます。wp_deregister_style( 'fontawesome');ファイルを確実に使用するようにしてください。 –

+0

wss_enwueueはif条件をスキップして(stylesheet_installed($ font_awesome)=== 0)、常にCSSをエンキューしなければならないと思うだけです。そこに構文(または意味)エラーがありますが、私はそれを見つけることができません... – JCdotNET

0

Google検索では、WordPress Codexでこの機能が使用されています。他のプラグインが最初に自分のスタイルをエンキューし、ヘルパー関数 `stylesheet_installedは、($のarray_css)`返すように

if (!wp_style_is('fontawesome', 'enqueued')) { 
    wp_register_style('fontawesome', '//maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css', false, '4.6.1'); 
    wp_enqueue_style('fontawesome'); 
} 
+0

font-awesomeがxxx-fontawesomeとして登録されているとどうなりますか?例えば、私はこれを持っています:llorix-one-lite-fontawesome-cssと他の2つがインストールされています!それが上のヘルパー関数の目的です。すべての名前を確認してください。私はこの解決策を試してみましょう、それが動作する場合、答えを受け入れる、ありがとう:) – JCdotNET

関連する問題