通过插件在管理页面上加载自定义js文件

时间:2017-12-10 09:13:01

标签: javascript php wordpress

我是Wordpress世界的新手,我刚刚开始开发我的第一个plugin。 当它被激活时,它应该将一个javascript文件加载到wp-admin/post-new.php(添加新帖子)页面。

以下是我尝试这样做的方法:

插件

class WP_Blog_Customizer{
    function __construct() {
        add_action( 'wp_enqueue_scripts', array($this, 'load_dependencies') ); 
        register_activation_hook( __FILE__, array( $this, 'wpa_install' ) );
        register_deactivation_hook( __FILE__, array( $this, 'wpa_uninstall' ) );
    }
    public function load_dependencies(){
        wp_enqueue_script('blog-customizer', plugins_url('js/blog-customizer.js', __FILE__),array('jquery'),'1.0.0', true);
    }
}
new WP_Blog_Customizer();

可湿性粉剂管理员/后new.php

if(is_plugin_active( 'blog-customizer/blog-customizer.php' )){
        $plugin = new WP_Blog_Customizer();
}

我的插件类的add_action( 'wp_enqueue_scripts', array($this, 'load_dependencies') );中的__construct不应该包含此js文件吗?

注意

此js文件位于我的插件文件夹中的js文件夹下,因此路径正确。

任何人都可以告诉我为什么这不起作用,以及如何让它发挥作用?

1 个答案:

答案 0 :(得分:1)

要在管理端加载脚本,我们必须使用admin_enqueue_scripts挂钩。所以这样的事情应该可以胜任:

class WP_Blog_Customizer{
    function __construct() {
        add_action( 'admin_enqueue_scripts', array($this, 'load_dependencies') ); 
        //...other constructor things
    }
    public function load_dependencies( $hook ){
        if ( $hook == 'post-new.php' ) { // for loading script also on post edit screen use ( $hook == 'post-new.php' || $hook == 'post.php' )
            wp_enqueue_script('blog-customizer', plugins_url('js/blog-customizer.js', __FILE__),array('jquery'),'1.0.0', true);
        }
    }
}
new WP_Blog_Customizer();