wp_enqueue_style没有加载CSS

时间:2014-02-07 11:31:35

标签: wordpress

我正在尝试按照Wordpres Codex上的建议使用wp_enqueue_style加载脚本,但脚本似乎并未包含在源代码中。这是正确的方法吗?

    function load_scripts() {
        wp_enqueue_style('bootstrap.css', get_template_directory_uri() . '/css/bootstrap.min.css');
    }
    add_action('wp_enqueue_scripts', 'load_scripts');

7 个答案:

答案 0 :(得分:6)

您的行动和功能从这里看起来很好。 wp_enqueue_scripts挂钩应该适用于样式表和脚本。

你是否尝试在函数中回显一些东西,看它是否真的被调用了?即:

    function load_scripts() {
        echo "Does this output to the actual page?";
        wp_enqueue_style('bootstrap.css', get_template_directory_uri() . '/css/bootstrap.min.css');
    }
    add_action('wp_enqueue_scripts', 'load_scripts');

如果不是,您可能会遇到代码放置问题,但是如果您将所有内容保存在functions.php中以及任何其他范围之外,那么这应该不是问题。 另一个可能导致此行为的方法是,如果您已经使用相同的句柄注册了样式表或脚本(在本例中为“bootstrap.css”)。 wp_enqueue_style()函数中的第一个参数只是内部依赖关系管理的句柄,应该是唯一的,尝试将其重命名为其他内容并查看是否能解决您的问题。

答案 1 :(得分:1)

首先注册样式:

function register_plugin_styles() {
    wp_register_style('my-plugin', plugins_url('my-plugin/css/plugin.css'));
    wp_enqueue_style('my-plugin'); 
} 

http://codex.wordpress.org/Function_Reference/wp_register_style

这样做。不要试图直接入队。并将代码放入functions.php当然。

答案 2 :(得分:1)

  1. 好的,第一步是确保您使用的是CSS文件的正确路径。 在主题或其他适当位置的functions.php中添加以下行。

    print( get_template_directory_uri() . '/css/bootstrap.min.css' );
    

    这应该在页面顶部打印所需样式表的URL。复制此网址并将其粘贴到新标签中,如果它打开了样式表,那么您就可以使用了。否则,路径有误。

  2. 第二步是确保正在显示的页面上调用 wp_head()。可以将其放置在标题模板中,也可以将其放在档案/帖子文件等的顶部。此功能实际上在页面上呈现样式和脚本。

    没有wp_head(),它基本上没有任何作用,因为如果您知道确切的路径,则可以手动添加链接和脚本。

答案 3 :(得分:1)

请注意,在管理模式下,有一个特殊的钩子'admin_enqueue_scripts'。因此,如果需要在两种模式下都加载CSS,则应在两个钩子上完成。

function load_scripts() {
    wp_enqueue_style('bootstrap.css', get_template_directory_uri() . '/css/bootstrap.min.css');
}

add_action('wp_enqueue_scripts', 'load_scripts');    
add_action('admin_enqueue_scripts', 'load_scripts');

答案 4 :(得分:1)

如果您不想在模板中使用wp_head();,还可以直接包含样式:

<link rel="stylesheet" href="<?php echo get_theme_file_uri( 'style.css' ); ?>">
尽管

要小心:wp_head()包含大量的东西(脚本,样式等),它们都是由wordpress本身以及大多数插件组成的,所以只有在知道自己要使用的内容时才忽略它做。

答案 5 :(得分:0)

您正试图在wp_enqueue_scripts挂钩上排队样式。 尝试 wp_print_styles

add_action('wp_print_styles', 'load_scripts');

首先尝试注册样式。

答案 6 :(得分:0)

首先用以下代码确认css文件的路径是否正确:

  function load_scripts() {
    wp_enqueue_style('load-custom-css-new', get_template_directory_uri() . '/css/bootstrap.min.css');
}
add_action('wp_enqueue_scripts', 'load_scripts');

或使用此URL。

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