代码之家  ›  专栏  ›  技术社区  ›  Lieutenant Dan

将插件php中的外部纯JS排队以添加到主题的页脚中

  •  0
  • Lieutenant Dan  · 技术社区  · 7 年前

    我正在尝试从我的插件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
    

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

    和核心插件PHP/功能:

    http://dev.website.com/wp-content/plugins/mykewlplugin/mykewlplugin.php
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Community Mohan Dere    6 年前

    确保当前活动的主题正在使用 wp_footer() 和 wp_head() 函数,因为这些函数是使用适当的操作钩子所必需的。话虽如此,你真的应该把你的资产合理地排队。任何其他在这个项目上工作的人(包括你未来的自己)都会很感激的!

    wp_enqueue_scripts 钩子和 wp_enqueue_script() (它依赖于 和 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 );
    }
    

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

    • 独特的 手柄
    • 实际文件的路径
    • array('jquery')
    • filemtime( plugin_dir_path( __FILE__ ) . 'assets/file-name.js' 典型的。
    • 在页脚

    如果你确定你的主题是利用 wp头() 和 ,并且文件不工作-这意味着你的插件配置/激活不正确,在这一点上,我建议你再粗略地浏览一下 Writing A Plugin 文件和 File Header Requirements

    对于您的具体情况,您应该开始这样做:

    <?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 );
        }
    ?>
    
    推荐文章