我想在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();
?>
答案 0 :(得分:0)
经过一番调查后,我发现WordPress管理区域使用了几个类型为“text / html”的脚本标签。 ICanHaz.js查找具有此类型的任何脚本标记作为其模板使用,并将其从DOM中删除。因此,当WordPress管理员javascript查找这些标签时,它们将不再存在,从而导致错误。
所以看来我的WordPress管理界面中没有Haz ICanHaz.js。