将插件php中的外部纯JS放入队列,添加到主题的页脚中



我正试图从我的插件php中对一个外部纯JavaScript文件进行排队,以添加到WP主题的页脚中。这可能吗?

我试过下面的,但测试失败了,因为没有发出警报。。。

<?php
/**
Plugin Name: Add Footer JS
*/
add_action( 'wp_footer', 'my_footer_scripts' );
function my_footer_scripts(){
?>
<script>alert( 'Hi Roy' ); </script> // just a test
<?php
}

所以基本上;JS将位于:

http://dev.website.com/wp-content/plugins/mykewlplugin/js/script-support.js

这个PHP,位于:

http://dev.website.com/wp-content/plugins/mykewlplugin/support.php

核心插件PHP/功能位于:

http://dev.website.com/wp-content/plugins/mykewlplugin/mykewlplugin.php

确保您当前活动的主题正在使用wp_footer()wp_head()函数,因为它们是使用适当的操作挂钩所必需的。话虽如此,你真的应该妥善安排你的资产。任何参与该项目的人(包括你未来的自己(都会对此表示赞赏!

这涉及到使用wp_enqueue_scripts钩子和wp_enqueue_script()函数(它依赖于wp_head()wp_footer函数(

正确的方法如下:

add_action( 'wp_enqueue_scripts', 'no_spex_footer_js' );
function no_spex_footer_js(){
wp_enqueue_script( 'no-spex-footer-js', '/path/to/your/file.js', array(), null, true );
}

注意所有传递的参数,按顺序:

  • 一个唯一句柄
  • 实际文件的路径
  • 按句柄排列的依赖项数组(如果您依赖jQuery,请将其更改为array('jquery'),等等
  • 文件的版本。我通常使用filemtime( plugin_dir_path( __FILE__ ) . 'assets/file-name.js'
  • in_footer-这是最重要的一个,它决定了文件应该加载到页眉还是页脚

如果你确定你的主题使用了wp_head()wp_footer(),而文件不起作用——这意味着你的插件没有正确配置/激活,那么我建议你再粗略地看一眼"编写插件"文档和"文件头要求"。

对于你的具体情况,应该这样做:

mykewlplugin.php:

<?php
/**
* Plugin Name: My Kewl Plugin
* Description: Does Kewl Things
* Version:     0.1
*/
add_action( 'wp_enqueue_scripts', 'my_kewl_plugin_footer_js' );
function my_kewl_plugin_footer_js(){
wp_enqueue_script( 'my-kewl-plugin-footer', plugins_url( '/js/script-support.js', __FILE__ ), array(), filemtime( plugin_dir_path( __FILE__ ) . 'js/script-support.js', true );
}
?>

最新更新