问题包括wordpress 4.2.2中的内联JS,wp_add_inline_script不起作用

问题描述 投票:0回答:1

我想在worpress中放入内联js,根据wordpress docs,wp_add_line_script就是这个,但是它在functions.wp-scripts.php文件中不存在。我尝试的另一种方式是使用WP_Scripts :: add_inline_script,但此方法也不会退出。

有趣的是,wp_add_inline_style可以工作,所以我可以用CSS做但不能用JS做..

所以我需要包括内联JS,但不能使用文档功能,我不想做echo "<script> //code </script>

那我该怎么办?为什么这个功能不在wordpress 4.2.2中呢?

谢谢

wordpress
1个回答
0
投票

最后,我最终在一个帮助器类中实现了一个静态方法,该方法在关闭之前打印JS,我认为这可能会被改变,但对我而言......

有了这个类,我可以包含一个js / css文件数组和内联javascript,如:

    Assets::registerCSS(['jquery-ui.min.css', 'jquery.tagsinput-revisited.css']);
    Assets::registerJS(['jquery-ui.min.js', 'jquery.tagsinput-revisited.js'], ['jquery']);

和内联JS一样:

Assets::registerInlineJS($script);

其中$ script是没有标签<script> </script>的JS代码

这个类是我正在工作的一个插件,它也适用于其他插件..在我的情况下,在我的插件的根文件夹中,我有两个名为css和js的文件夹,这就是为什么我调用plugin_dir_url(DIR)。 “js / $ file”来查找.js文件希望这对某人有所帮助

class Assets {

public static function registerJS(Array $files = [], Array $deps = []) {
    foreach ($files as $file) {
        wp_enqueue_script(basename($file, '.js'), plugin_dir_url(__DIR__) . "js/$file", $deps, false, false);
    }
}

public static function registerCSS(Array $files = [], Array $deps = []) {
    foreach ($files as $file) {
        wp_enqueue_style(basename($file, '.css'), plugin_dir_url(__DIR__) . "css/$file", $deps, false);
    }
}

public static function registerInlineJS($js) {
    add_action('wp_print_footer_scripts', function() use ($js) {
        echo '<script>';
        echo $js;
        echo '</script>';
    });
}

}

© www.soinside.com 2019 - 2024. All rights reserved.