css3 加载中-如何在 WordPress 上正确加载 Javascript 和 CSS

2023-08-26 0 1,086 百度已收录

如今,许多 WordPress 网站开始讨论如何将 jQuery、Javascript 和 CSS 正确加载到 WordPress 网站中。 昨天来了一篇比较详细的文章,介绍了如何使用WordPress官方推荐的方法来加载脚本/CSS。

有两种常见的 add_action 挂钩可将脚本和 CSS 加载到 WordPress 中:

以下所有示例均在WordPress多站点模式和WordPress3.4​​.2下通过测试(如果后续版本不支持,请留言告知)

加载外部 jQuery 库和主题自定义脚本和样式

下面的示例在 add_action 挂钩中使用 init。 使用init有两个动机,一是因为我们取消注册WordPress的默认jQuery库,然后加载微软的jQuery库;二是因为我们要取消注册WordPress的默认jQuery库,然后加载微软的jQuery库; 二是保证脚本和CSS在WordPress面前加载。

if(!is_admin())的使用是为了保证这样的脚本和css只在后端加载,而不会在后台管理界面加载。

/** Google jQuery Library, Custom jQuery and CSS Files */  
function myScripts() {  
        wp_register_script( 'google', 'http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.js' );  
        wp_register_script( 'default', get_template_directory_uri() . '/jquery.js' );  
        wp_register_style( 'default', get_template_directory_uri() . '/style.css' );  
    if ( !is_admin() ) { /** Load Scripts and Style on Website Only */  
        wp_deregister_script( 'jquery' );  
        wp_enqueue_script( 'google' );  
        wp_enqueue_script( 'default' );  
        wp_enqueue_style( 'default' );  
    }  
}  
add_action( 'init', 'myScripts' );

加载WP默认jQuery库和主题自定义脚本和样式

第 3 行:使用 array('jquery') 告诉 WordPress jquery.js 依赖于 WordPress 的 jQuery 库文件,以便 jquery.js 在 WordPress jQuery 库文件之后加载。

/** Add Custom jQuery and CSS files to a Theme */  
function myScripts() {  
        wp_register_script( 'default', get_template_directory_uri() . '/jquery.js', array('jquery'), '' );  
        wp_register_style( 'default', get_template_directory_uri() . '/style.css' );  
    if ( !is_admin() ) { /** Load Scripts and Style on Website Only */  
        wp_enqueue_script( 'default' );  
        wp_enqueue_style( 'default' );  
    }  
}  
add_action( 'init', 'myScripts' );

将 print.css 加载到您的 WordPress 主题中

第 3 行:最后的“打印”是媒体屏幕调用css3 加载中,确保在加载站点复印机中的文件时加载 print.css。

/** Adding a Print Stylesheet to a Theme */  
function myPrintCss() {  
        wp_register_style( 'print', get_template_directory_uri() . '/print.css', '', '', 'print' );  
    if ( !is_admin() ) { /** Load Scripts and Style on Website Only */  
        wp_enqueue_style( 'print' );  
    }  
}  
add_action( 'init', 'myPrintCss' );

将 init 替换为 wp_enqueue_scripts

如果你想加载帖子或页面中唯一的脚本,你应该使用wp_enqueue_scripts而不是init。 使用wp_enqueue_scripts只会在前台加载脚本和CSS,不会在后台管理界面加载,所以不需要使用!is_admin()来判断。

使用 is_single() 仅在文章上加载脚本或 CSS

第 3 行的 # 替换为文章的 ID,以便脚本和 css 只能加载到该文章。 事实上,如果直接使用is_single()(不带ID),所有文章中都会加载脚本和CSS。

/** Adding Scripts To A Unique Post */  
function myScripts() {  
    if ( is_single(#) ) { /** Load Scripts and Style on Posts Only */  
        /** Add jQuery and/or CSS Enqueue */  
    }  
}  
add_action( 'wp_enqueue_scripts', 'myScripts' );

使用 is_page() 仅在页面上加载脚本或 CSS

第 3 行的 # 被页面的 ID 替换,这样脚本和 css 只能加载到该页面。 事实上css3 加载中,如果直接使用is_single()(不带ID),脚本和CSS将被加载到所有页面上。

/** Adding Scripts To A Unique Page */  
function myScripts() {  
    if ( is_page(#) ) { /** Load Scripts and Style on Pages Only */  
        /** Add jQuery and/or CSS Enqueue */  
    }  
}  
add_action( 'wp_enqueue_scripts', 'myScripts' );

使用admin_enqueue_scripts加载脚本到后台

此示例将在整个管理界面中加载脚本和 CSS。 不建议插件使用此方法,除非插件重建了整个后台管理区域。

第 10 行将 init 或 wp_enqueue_scripts 替换为 admin_enqueue_scripts

第5行和第6行,如果要自定义后台管理区域,可能需要禁用默认的WordPressCSS调用。

/** Adding Scripts To The WordPress Admin Area Only */  
function myAdminScripts() {  
    wp_register_script( 'default', get_template_directory_uri() . '/jquery.js', array('jquery'), '' );  
    wp_enqueue_script( 'default' );  
    //wp_deregister_style( 'ie' ); /** removes ie stylesheet */  
    //wp_deregister_style( 'colors' ); /** disables default css */  
    wp_register_style( 'default', get_template_directory_uri() . '/style.css',  array(), '', 'all' );  
    wp_enqueue_style( 'default' );  
}  
add_action( 'admin_enqueue_scripts', 'myAdminScripts' );

将脚本和 CSS 加载到 WordPress 登录屏幕

第 6 行:我不知道如何在登陆页面上注册/排序 CSS 文件,因此这一行会自动添加样式表。

第 10-14 行:这些行用于删除 WordPress 默认样式表。

/** Adding Scripts To The WordPress Login Page */  
function myLoginScripts() {  
    wp_register_script( 'default', get_template_directory_uri() . '/jquery.js', array('jquery'), '' );  
    wp_enqueue_script( 'default' );  
?>  
    <link rel='stylesheet' id='default-css' href='' type='text/css' media='all' />  
<?php }  
add_action( 'login_enqueue_scripts', 'myLoginScripts' );  
/** Deregister the login css files */  
function removeScripts() {  
    wp_deregister_style( 'wp-admin' );  
    wp_deregister_style( 'colors-fresh' );  
}  
add_action( 'login_init', 'removeScripts' );

将脚本和 CSS 加载到 WordPress 插件中

WordPress 插件加载脚本和 CSS 也很常见。 主要区别在于文件的 URL。 主题使用 get_template_directory_uri,插件应使用plugins_url,因为文件是从插件目录加载的。

从插件加载脚本和 CSS

这个反例将在整个网站的后端加载脚本和CSS。

/** Global Plugin Scripts for Outside of Website */  
function pluginScripts() {  
    wp_register_script( 'plugin', plugins_url( 'jquery.js' , __FILE__ ), array('jquery'), '' );  
    wp_register_style( 'plugin', plugins_url( 'style.css' , __FILE__ ) );  
    if ( !is_admin() ) { /** Load Scripts and Style on Website Only */  
        wp_enqueue_script( 'plugin' );  
        wp_enqueue_style( 'plugin' );  
    }  
}  
add_action( 'init', 'pluginScripts' );

将脚本和 CSS 从插件加载到管理区域

如果您需要在整个管理区域加载脚本和 CSS,请使用 admin_enqueue_scripts 而不是 init。

/** Global Plugin Scripts for The WordPress Admin Area */  
function pluginScripts() {  
    wp_register_script( 'plugin', plugins_url( 'jquery1.js' , __FILE__ ), array('jquery'), '' );  
    wp_enqueue_script( 'plugin' );  
    wp_register_style( 'plugin', plugins_url( 'style1.css' , __FILE__ ) );  
    wp_enqueue_style( 'plugin' );  
}  
add_action( 'admin_enqueue_scripts', 'pluginScripts' );

将脚本和 CSS 从插件加载到插件设置页面

该示例只会将所需的脚本和CSS加载到插件设置页面,并且不会加载管理区域中的其他页面。

第 3 行:custom page= 旁边的值设置插件的页面

/** Adding Scripts On A Plugins Settings Page */  
function pluginScripts() {  
    if ( $_GET['page'] == "plugin_page_name.php" ) {  
        wp_register_script( 'plugin', plugins_url( 'jquery.js' , __FILE__ ), array('jquery'), '' );  
        wp_enqueue_script( 'plugin' );  
        wp_register_style( 'plugin', plugins_url( 'style.css' , __FILE__ ) );  
        wp_enqueue_style( 'plugin' );  
    }  
}  
add_action( 'admin_enqueue_scripts', 'pluginScripts' );

将 jQuery 库连接到脚注

您无法将 WordPress 的默认 jQuery 库链接到页面顶部,但可以将自定义 jQuery 或其他外部 jQuery 库(例如 Google 的)链接到顶部。 不要将 CSS 链接到页面顶部。

第 3 行和第 4 行:末尾的“true”告诉 WordPress 在页面顶部加载此脚本。

/** Moves jQuery to Footer */  
function footerScript() {  
        wp_register_script('jquery', ("http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.js"), false, '', true );  
        wp_register_script( 'default', get_template_directory_uri() . '/jquery.js', false, '', true );  
    if ( !is_admin() ) { /** Load Scripts and Style on Website Only */  
        wp_deregister_script( 'jquery' );  
        wp_enqueue_script( 'jquery' );  
        wp_enqueue_script( 'default' );  
    }  
}  
add_action( 'init', 'footerScript' );

根据不同的用户角色和能力加载 jQuery 和 CSS

如果您的网站有作者、编辑和其他管理员,您可能需要使用 jQuery 为他们显示不同的信息。 您需要使用 current_user_can 来确定登录用户的角色和能力。

在下面的三个示例中,如果用户已经登录,这些脚本和 CSS 将在整个站点加载。使用 !is_admin() 包装 enqueue_script 以确保它仅在前台加载,或在 add_action 中使用 admin_enqueue_scripts 以确保只在后台管理区加载。

为可以“编辑帖子”的管理员加载脚本和 CSS

仅对超级管理员和站点管理员有效

/** Add CSS & jQuery based on Roles and Capabilities */  
function myScripts() {  
    if ( current_user_can('edit_posts') ) {  
        /** Add jQuery and/or CSS Enqueue */  
    }  
}  
add_action( 'init', 'myScripts' );

为所有登录用户加载脚本和 CSS

/** Admins / Authors / Contributors /  Subscribers */  
function myScripts() {  
    if ( current_user_can('read') ) {  
        /** Add jQuery and/or CSS Enqueue */  
    }  
}  
add_action( 'init', 'myScripts' );

为管理员以外的登录用户加载脚本和 CSS

/** Disable for Super Admins / Admins enable for Authors / Contributors /  Subscribers */  
function myScripts() {  
    if ( current_user_can('read') && !current_user_can('edit_users') ) {  
        /** Add jQuery and/or CSS Enqueue */  
    }  
}  
add_action( 'init', 'myScripts' );

最后提示

如果使用相同的 add_action,其中的许多示例可以组合成一个函数。

换句话说,您可以使用多个 if 语句将脚本和 CSS 调用拆分到一个函数中,例如: if_admin! if_admin、is_page、is_single 和 current_user_can 各自使用相同的 add_action init。

参考原文(已删除):

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 css3 css3 加载中-如何在 WordPress 上正确加载 Javascript 和 CSS https://www.wkzy.net/game/155382.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务