2017-04-05 22 views
1

我想排隊的字體真棒只有如果還沒有入隊之前。檢查字體真棒存在之前排隊到wordpress

這是我的代碼:

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; 
} 

這個功能似乎是確定。

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總是入隊。

我堅持這一點,任何幫助將不勝感激,謝謝!

+0

最後,我加入了低優先級爲'ADD_ACTION(「wp_enqueue_scripts」,「add_scripts」)',這樣其他的插件先入隊他們的風格和輔助功能'stylesheet_installed解決了這個問題($ array_css)'返回期望值。現在如果之前已經安裝了font-awesome,函數返回1,否則返回0。在添加優先級之前總是返回0.希望這可以幫助別人! – JCdotNET

回答

1

我用做這樣在我的主題來實現字體(自定義CSS):

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'); 

您可以使用它來添加谷歌字體或你需要的任何CSS。

+0

謝謝,我不想這樣做,如果之前安裝了font-awesome,那就是我使用stylesheet_installed輔助函數的原因。如果函數返回1,那麼您的代碼(或我的代碼)不會被執行,但它會執行。 – JCdotNET

+0

您可以在註冊樣式之前添加此行:wp_deregister_style('fontawesome');確保你會使用你的文件。 –

+0

我只想知道如果字體真棒註冊和我創建的功能做這個工作,但由於任何原因wp_enwueue跳過if條件(stylesheet_installed($ font_awesome)=== 0)並始終入隊CSS,我認爲它必須是一個語法(或語義)錯誤,但我找不到它... – JCdotNET

0

快速谷歌搜索在WordPress Codex中顯示此功能。

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