簡體   English   中英

帶條件標簽的wordpress加載插件css / js在functions.php中

[英]wordpress load plugin css/js in functions.php w/ conditional tags

所以我一直試圖讓插件腳本/ css僅在需要時加載。 我在下面的我的functions.php中有一個名為“ review”的帖子的類別,我試圖僅在具有類別“ review”的帖子上加載插件,而不管是什么頁面/帖子/主屏幕..nothign正在加載。 有什么幫助嗎?

add_action( 'init', 'stopmyrpjs', 100 );
function stopmyrpjs() {
if (!in_category('review')){
    remove_action('wp_head', 'myrp_load_necessary_js'); 
    remove_action('wp_head', 'myrp_track_traffic'); 
        wp_deregister_script( 'myrp-stuff' );
    wp_dequeue_script( 'jtip' );
    wp_dequeue_script( 'jquery-MetaData' );
    wp_dequeue_script( 'jquery-ui' );
    wp_dequeue_script( 'myrp-stuff' );
    wp_dequeue_script( 'jquery-ui-accordion' );
    wp_dequeue_script( 'jscolor' );
    wp_dequeue_script( 'sorttable' );
    wp_dequeue_script( 'jquery-MetaData' );
    wp_dequeue_script( 'jquery-rating' );
    }}

編輯::我有它的工作,除了它不能為is_category或in_category ..我要工作的如下:

add_action( 'wp_print_scripts', 'stopmyrpjs', 100 );
function stopmyrpjs() {
if (!is_single()){
    remove_action('wp_head', 'myrp_load_necessary_js'); 
    remove_action('wp_head', 'myrp_track_traffic'); 
wp_deregister_script( 'myrp-stuff' );
    wp_dequeue_script( 'jtip' );
    wp_dequeue_script( 'jquery-MetaData' );
    wp_dequeue_script( 'jquery-ui' );
    wp_dequeue_script( 'myrp-stuff' );
    wp_dequeue_script( 'jquery-ui-accordion' );
    wp_dequeue_script( 'jscolor' );
    wp_dequeue_script( 'sorttable' );
    wp_dequeue_script( 'jquery-MetaData' );
    wp_dequeue_script( 'jquery-rating' );
    }}

仍然希望我可以針對某些類別進行這項工作。

我想你要is_category

可以在循環外部使用它,並根據當前視圖返回一個布爾值。

更新:

仔細查看您的動作掛鈎,之所以說它“不起作用”是因為對動作進行了優先排序。 您正在嘗試在“ init”操作中注銷和使腳本出隊,這可能是在腳本本身實際被注冊和/或入隊之前觸發的。

我還猜測外部腳本正在由各種插件注冊,每個插件都有自己的動作掛鈎和優先級。

在刪除任何多余的腳本之前,請嘗試將其更改為“ wp_footer”以確保所有腳本均由其相應的插件加載,而不是使用init鈎子:

if (!is_category('review'))
{
    remove_action('wp_head', 'myrp_load_necessary_js'); 
    remove_action('wp_head', 'myrp_track_traffic'); 
    add_action('wp_footer', 'stopmyrpjs');
}
function stopmyrpjs(){
    wp_deregister_script( 'myrp-stuff' );
    wp_dequeue_script( 'jtip' );
    wp_dequeue_script( 'jquery-MetaData' );
    wp_dequeue_script( 'jquery-ui' );
    wp_dequeue_script( 'myrp-stuff' );
    wp_dequeue_script( 'jquery-ui-accordion' );
    wp_dequeue_script( 'jscolor' );
    wp_dequeue_script( 'sorttable' );
    wp_dequeue_script( 'jquery-MetaData' );
    wp_dequeue_script( 'jquery-rating' );
}

另外,請記住wp_dequeue_script是一個相對較新的函數(從3.1版開始)。 如果出於任何原因仍然遇到問題,請嘗試將wp_dequeue_script更改為wp_deregister_script。

需要進行進一步的檢查,以確保函數本身正在觸發,並且適當的視圖使您的條件評估為true。

希望這會有所幫助,並祝你好運。

Script Logic是一個WordPress插件,可讓您完全控制所有JavaScript和CSS文件。 您可以使用WP的條件標記僅在需要的頁面上有條件地加載CSS和JS文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM