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

时间:2018-03-02 18:04:13

标签: wordpress

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

wp_add_inline_style的工作原理很有趣,所以我可以使用CSS但不能使用JS ..

所以我需要包含内联JS,但不能使用docs函数,我不想这样做 echo "<script> //code </script>

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

由于

1 个答案:

答案 0 :(得分: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 )。 &#34; JS / $文件&#34;寻找.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>';
    });
}

}