我正在创建一个wordpress插件,我需要包含多个样式表和JS文件。
我使用了以下代码,
1。试用1-包括样式和脚本
define( 'DELTA__PLUGIN_URL', plugin_dir_url( __FILE__ ) );
add_action('wp_enqueue_scripts', 'imwi_scripts');
function imwi_scripts() {
wp_register_style( 'delta-styles', DELTA__PLUGIN_URL . "css/style.css" );
wp_register_style( 'delta-styles', DELTA__PLUGIN_URL . "css/jquery.dataTables.css" );
wp_register_style( 'delta-styles', DELTA__PLUGIN_URL . "css/font-awesome.min.css" );
wp_register_script( 'delta-scripts', plugins_url('/js/jquery.dataTables.js', __FILE__) , array('jquery'), true );
wp_enqueue_style( 'delta-styles' );
wp_enqueue_script( 'delta-scripts' );
}
2。试用2 - 单独包括脚本和样式
define( 'DELTA__PLUGIN_URL', plugin_dir_url( __FILE__ ) );
//EN-QUEUING JAVASCRIPTS
add_action('wp_enqueue_scripts', 'imwi_scripts');
function imwi_scripts() {
wp_register_script( 'delta-scripts', plugins_url('/js/jquery.dataTables.js', __FILE__) , array('jquery'), true );
wp_enqueue_script( 'delta-scripts' );
}
//EN-QUEUING STYLES
add_action("wp_enqueue_scripts", "imwi_styles");
function imwi_styles() {
wp_register_style( 'delta-styles', DELTA__PLUGIN_URL . "css/style.css" );
wp_register_style( 'delta-styles', DELTA__PLUGIN_URL . "css/jquery.dataTables.css" );
wp_register_style( 'delta-styles', DELTA__PLUGIN_URL . "css/font-awesome.min.css" );
wp_enqueue_style( 'delta-styles' );
}
RESULT 1. jquery.dataTables.js和style.css成功排入页面。
问题:
jquery.dataTables.css和font-awesome.min.css没有包括在内。
我希望保持我的样式独立,因此我无法将样式表导入到单个样式表(例如delta.css)中,并通过wp_enqueue_style()将delta.css排入队列。
使用CDN是不可能的,因为[WordPress.org插件]邮寄回来了将图片,js,css,cgi和其他脚本卸载到Google(或jquery.com或其他任何地方)坦率地说,因为你在另一个网站上引入了不必要的依赖,所以不允许这样做。
问题:是否可以包含所有脚本和样式而无需为每个样式表和脚本创建多个函数?
感谢您的帮助..
答案 0 :(得分:3)
是的,有可能。您需要使用wp_register_style
<?php wp_register_style( $handle, $src, $deps, $ver, $media ); ?>
$处理 (字符串)(必需)样式表的名称(应该是唯一的,因为它用于标识整个系统中的脚本)。 默认值:无
因此,不要调用所有三个(来自示例1)delta-styles
,而是调用它们
然后wp_enqueue_style这三个所以:
wp_enqueue_script( 'delta-scripts' );
wp_enqueue_script( 'delta-scripts-jquery' );
wp_enqueue_script( 'delta-scripts-font-awesome' );