CMS wordpress

wordpress禁止js css在首页加载 比如enlighter高亮插件

虽然wordpress新版的编辑器对代码加入稍微有了改革,但个人还是不喜欢,也不好看。

还是继续用enlighter插件,enlighter可以在后台设置只在需要的地方加载脚本js。

可是依旧会在网站首页就加载一个css文件:EnlighterJS.min.css

首页根本就用不到好吗,那就禁止EnlighterJS.min.css加载,或者只让它在文章页面才加载。

//只在文章页面加载
add_action( 'wp_enqueue_scripts', 'enlighter_enqueue_styles', 99 );
function enlighter_enqueue_styles() {
    wp_dequeue_style('enlighter-local');
    if(is_single()){
        wp_enqueue_style( 'enlighter-local',
            plugins_url( 'enlighter/resources/EnlighterJS.min.css' ),
            array(), 'all' );
    }
}

说明:

先通过在enlighter文件夹里面搜索“wp_enqueue_style”,看看enlighter对应的css句柄。

wordpress禁止js css在首页加载 比如enlighter高亮插件

看见对应的出来个enqueueStyle,但这是这个插件默认的css函数,我们需要找到EnlighterJS.min.css。

就通过“enqueueStyle”来搜索:

wordpress禁止js css在首页加载 比如enlighter高亮插件

现在就找到对应的:enlighter-local

需要用到enlighter-local,来操作。

if(is_single()):表示判断是否文章页面

plugins_url:表示从插件读取路径

wp_enqueue_scripts:用钩子来加载文件,保障兼容性

wp_dequeue_style:先禁止加载这个css

wp_enqueue_style:判断之后再来加载这个css

至于enlighter_enqueue_styles这个,纯属是为了对应这个enlighter这个文件,方便我以后好记,不乱删文件。

当然也可以用更简单的代码:

//如果这个能读取句柄就直接用这个就行
add_action( 'wp_enqueue_scripts', 'enlighter_enqueue_styles', 99 );
function enlighter_enqueue_styles() {
    wp_dequeue_style('enlighter-local');
    if(is_single()){
        wp_enqueue_style( 'enlighter-local');
    }
}

如果要完全禁止某个js或者css加载:

//完全禁止加载
function my_deregister_styles() {  
    wp_deregister_style( 'enlighter-local' );  
}
add_action( 'wp_print_styles', 'my_deregister_styles', 100 );  

wp_deregister_style:取消注册css

wp_deregister_script:取消注册移除js

具体代码根据自己的主题,插件改就行了。

之后会写一篇wordpress常用页面判断和钩子等。

如果是js就搜:wp_enqueue_script(加载),移除就用:wp_dequeue_script

比如:

add_action( 'wp_enqueue_scripts', 'enlighter_enqueue_scripts', 99 );
function enlighter_enqueue_scripts() {
    wp_dequeue_script('enlighter-local');
    if(is_single()){
        wp_enqueue_scripts( 'enlighter-local' );
    }
}

当然还有更简单的,用到init来判断,但是有可能造成不兼容

只在文章页面加载js:

//如果不是文章页面就不注册这个js
add_action( 'wp_print_scripts', 'my_deregister_javascript', 100 );
function my_deregister_javascript() {
	if ( !is_single() ) {
		wp_deregister_script( '插件js句柄' );
	}
}

只在文章和页面加载css:

//如果不是文章页和页面就取消注册这个css
add_action( 'wp_print_styles', 'wp_css', 100 );
function wp_css() {
	if ( !is_single() || !is_page() ) {
		wp_deregister_style( 'wp-int-css' );
	}
}

具体用什么钩子,结合自己主题插件来,有的可能不兼容。尽量先取消,然后到某地方了再加载。

官方说明:

https://developer.wordpress.org/reference/functions/

我也不知道说点啥,你们自己看吧~ 联系我

你可能喜欢

没有留意

    发表评论