没有调用wp_enqueue_scripts

时间:2017-01-04 02:18:31

标签: php wordpress

我在StackOverflow和其他网站上看到很多关于为什么'wp_enqueue_scripts'无法正常工作的问题,但没有一个是我想要的。

我想将一个脚本导入我的Wordpress主题,我复制了一个从主要开发者Wordpress网站主剪下的代码。

我的'functions.php'中有以下代码,输出是'OUTPUT 1OUTPUT 4'。 似乎'wpdocs_theme_name_scripts()'永远不会被调用。

/**
 * Proper way to enqueue scripts and styles.
 */
function wpdocs_theme_name_scripts() {
    echo "OUTPUT 2";
    wp_enqueue_script( 'script-name', get_template_directory_uri() . '/js/main.js', array(), '1.0.0', true );
    echo "OUTPUT 3";
}
echo "OUTPUT 1";
add_action( 'wp_enqueue_scripts', 'wpdocs_theme_name_scripts' );
echo "OUTPUT 4";

3 个答案:

答案 0 :(得分:3)

请注意wpdocs_theme_name_scripts()之后和echo "OUTPUT 1";

之前不会调用echo "OUTPUT 4";

add_action()只会注册一个在遇到wp_head()时运行的回调。您可以在this answer中找到有关该内容的更多详细信息。

您是否在主题中添加了wp_head()?它通常会在header.php标记之前的</head>中添加,例如:

<!DOCTYPE html>
<html lang="en"> 
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title><?php wp_title(); ?></title>
    <?php wp_head(); ?>
</head>

答案 1 :(得分:0)

对于在 admin 页上遇到此问题的任何人,请使用admin_enqueue_scripts挂钩而不是wp_enqueue_scripts挂钩。

Documentation here

答案 2 :(得分:-1)

    <?php
     /* This code is use in function.php */
    add_action( 'wp_enqueue_scripts', 'mytheme_scripts' );

    function mytheme_scripts() {
    echo "Helllo";
    wp_enqueue_style( 'mytheme-owlcaroselcss', get_template_directory_uri() . '/css/owl.carousel.css', array( 'mytheme-style' ), '20150312' );
       echo "Helllo1";
    }
   /* ****** */
     ?>
     use in header.php with wp_head() function
    <html>
    <head>
     <?php wp_head();?>
    </head>
    </html>