我想在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?
由于
答案 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>
这个类是我工作的一个插件,它也可以用于其他插件..在我的情况下,在我的插件的根文件夹中,我有两个名为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>';
});
}
}