从插件php入队外部纯JS以在主题的页脚中添加

时间:2018-10-31 21:05:25

标签: php wordpress

我试图从我的插件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

1 个答案:

答案 0 :(得分:1)

请确保您当前处于活动状态的主题正在使用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(),并且文件无法正常工作-这表示您的插件未正确配置/激活,这时我建议您再次浏览Writing A Plugin文档和File Header Requirements

对于您的具体情况,这样的操作应该可以帮助您入门:

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 );
    }
?>