WP_Enqueue_Script加载页脚,而不是侧栏

时间:2015-04-12 23:39:27

标签: php jquery wordpress

我一直致力于为WordPress创建一个插件,在激活时会向侧边栏添加一段代码。

到目前为止,该脚本在加载页面时有效,但它显示在页面的页脚而不是侧边栏中。

我应该更改什么才能使代码显示在侧边栏而不是页脚?

 /**
 * Front-end display of widget.
 *
 * @see WP_Widget::widget()
 *
 * @param array $args     Widget arguments.
 * @param array $instance Saved values from database.
 */


    public function widget( $args, $instance ) {



    echo $args['before_widget'];
    if ( ! empty( $instance['title'] ) ) {
        echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ). $args['after_title'];
        }

      wp_enqueue_script( 'external-script'); 

     //echo __( 'Hello, World!', 'text_domain' );
     echo $args['after_widget'];



}

https://github.com/ModMarc/WordPress-Humanity-Box-Widget/blob/master/Widget.php

1 个答案:

答案 0 :(得分:1)

wp_enqueue_script在页眉或页脚中加载js文件,从不在侧边栏或其他任何地方加载。

当脚本在wp_enqueue_scripts操作被触发后排队时,它总是在页脚中加载。

来自wp_enqueue_scripts文档:

  

从版本3.3开始,该函数可以在页面中间(在wp_footer()模板标记之前)或使用wp_head动作钩子调用。这会将脚本放在页脚中,就像$ in_footer参数设置为true一样。

如果您希望在头部排队一个脚本,则必须将您的入队功能附加到wp_enqueue_scripts操作。

add_action( 'wp_enqueue_scripts', function() {
    wp_enqueue_script( 'external-script');
});

这不能在widget方法中完成,因为在窗口小部件呈现时该操作已经触发。

如果您希望在侧边栏中加载脚本,则必须手动输出script标记。

echo '<script src="' . esc_url($your_script_url) . '"></script>';