Wordpress通过插件加载样式表

fig*_*r20 11 php wordpress wordpress-plugin

我已经写了一个WordPress插件,并希望它包含一些css样式表,我试图使用我通常在主题functions.php文件中使用的过程...

add_action('wp_enqueue_script','register_my_scripts');

function register_my_scripts(){
    $dir = plugin_dir_path( __FILE__ );
    wp_enqueue_style( $dir . 'css/style1.css');
    wp_enqueue_style( $dir . 'css/style2.css');
}
Run Code Online (Sandbox Code Playgroud)

但这不是任何东西,我做错了什么?

Nat*_*son 23

你需要使用的钩子是wp_enqueue_scripts,你错过了's'.

当您需要的是目录URL时,您将获得目录路径.

wp_enqueue_style的第一个参数是句柄而不是URL.

function wpse_load_plugin_css() {
    $plugin_url = plugin_dir_url( __FILE__ );

    wp_enqueue_style( 'style1', $plugin_url . 'css/style1.css' );
    wp_enqueue_style( 'style2', $plugin_url . 'css/style2.css' );
}
add_action( 'wp_enqueue_scripts', 'wpse_load_plugin_css' );
Run Code Online (Sandbox Code Playgroud)


Rah*_*zir 7

您正在使用plugin_dir_path输出文件系统目录路径.相反,你需要URL.

wp_enqueue_style的第一个参数是$handlername.

使用plugins_url

wp_enqueue_style( 'style1', plugins_url( 'css/style1.css' , __FILE__ ) );
Run Code Online (Sandbox Code Playgroud)

完整代码:

add_action('wp_enqueue_scripts','register_my_scripts');

function register_my_scripts(){
    wp_enqueue_style( 'style1', plugins_url( 'css/style1.css' , __FILE__ ) );
    wp_enqueue_style( 'style2', plugins_url( 'css/style2.css' , __FILE__ ) );
}
Run Code Online (Sandbox Code Playgroud)