在WordPress管理员中使用icanhaz.js?

时间:2014-11-26 16:56:07

标签: javascript wordpress icanhaz.js

我想在WordPress管理员的自定义元数据框中使用ICanHaz.js(http://icanhazjs.com/)。但每当我将脚本排队时它会破坏媒体上传器,我在控制台中收到此错误:

  

未捕获的TypeError:无法读取未定义

的属性'replace'      

load-scripts.php?c = 1& load [] = hoverIntent,common,admin-bar,schedule,wp-ajax-response,autosave,suggest ...:382 Uncaught TypeError:无法读取undefined属性'replace'

在编辑帖子时,它似乎不会在前端造成任何问题。

任何想法如何使这个工作?

这是我用来注册和排队脚本的代码:

<?php

class SF_theme {

public function init(){
    //add actions, filters, images sizes, shortcodes, etc

    add_action( 'admin_init', array($this, 'register_admin') );
    add_action( 'init', array($this, 'register') );

    add_shortcode( 'facebook_box', array($this, 'facebook_box'));
    add_action( 'wp_enqueue_scripts', array($this, 'styles') );
    add_action( 'wp_enqueue_scripts', array($this, 'scripts') );

    add_action( 'admin_enqueue_scripts', array($this, 'admin_styles') );
    add_action( 'admin_enqueue_scripts', array($this, 'admin_scripts') );

}

public function register(){
    wp_register_script( 'icanhaz', get_stylesheet_directory_uri() . '/js/libs/ICanHaz.min.js', array('jquery'));
    wp_register_script( 'sf-scripts', get_stylesheet_directory_uri() . '/js/sf-script.js', array('icanhaz'));
}   

public function register_admin(){
    wp_register_style( 'sf-admin', get_stylesheet_directory_uri() . '/css/admin.css');
    wp_register_script( 'sf-admin', get_stylesheet_directory_uri() . '/js/sf-admin.js', array('icanhaz'));
}

public function styles(){
    wp_enqueue_style( 'dashicons' );
}

public function scripts(){

    wp_enqueue_script('sf-scripts');
}

public function admin_styles(){     
    wp_enqueue_style( 'sf-admin' );
}

public function admin_scripts(){
    wp_enqueue_script('sf-admin');

}   

}

$theme = new SF_theme();
$theme->init();

?>

1 个答案:

答案 0 :(得分:0)

经过一番调查后,我发现WordPress管理区域使用了几个类型为“text / html”的脚本标签。 ICanHaz.js查找具有此类型的任何脚本标记作为其模板使用,并将其从DOM中删除。因此,当WordPress管理员javascript查找这些标签时,它们将不再存在,从而导致错误。

所以看来我的WordPress管理界面中没有Haz ICanHaz.js。