2014-11-26 6 views
0

Я хотел использовать ICanHaz.js (http://icanhazjs.com/) в пользовательском метабоксе в администраторе WordPress. Но всякий раз, когда я епдиеие сценарий он ломает загрузчик медиа и я получаю эту ошибку в консоли:Использовать icanhaz.js в WordPress Admin?

Uncaught TypeError: Cannot read property 'replace' of undefined

load-scripts.php?c=1&load[]=hoverIntent,common,admin-bar,schedule,wp-ajax-response,autosave,suggest…:382 Uncaught TypeError: Cannot read property 'replace' of undefined

Это, кажется, не вызывает какие-либо проблемы на переднем конце, только при редактировании поста.

Любые идеи, как заставить это работать?

Вот код, я использую для регистрации и епдиеих сценарии:

<?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

После небольшого исследования я обнаружил, что админы область WordPress использует несколько тегов сценариев с типом = "текст/html ». ICanHaz.js ищет любые теги скриптов с этим типом, которые будут использоваться в качестве шаблонов, и удаляет их из DOM. Поэтому, когда javascript WordPress ищет эти теги, они больше не существуют, вызывая ошибку.

Так что кажется, что я не могу Haz ICanHaz.js в моем интерфейсе администратора WordPress.