我想在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中呢?
谢谢
最后,我最终在一个帮助器类中实现了一个静态方法,该方法在关闭之前打印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>';
});
}
}