Что означает "Не отменять регистрацию скрипта jquery в области администрирования"?
Мы все знаем преимущество использования кэширования cdn и т.д.. Ради этого я отключил скрипт и зарегистрировал jquery по ссылке cdn. Но проблема в том, что он показывает такую ошибку
Да, отладка в wordpress включена.
Он показывает такую ошибку.
Примечание: wp_deregister_script был вызван неправильно. Не отменяйте регистрацию скрипта jquery в области администрирования. Чтобы настроить таргетинг на тему внешнего интерфейса, используйте wp_enqueue_scripts крюк. Пожалуйста, смотрите раздел Отладка в WordPress для получения дополнительной информации. (Это сообщение было добавлено в версии 3.6.) в D:\learnnepal\wp-includes\functions.php в строке 3622
Но я думаю, что код в порядке.
Когда я удаляю следующие строки кода, которые не отображаются?
add_action( 'wp_enqueue_scripts', function(){
wp_deregister_script( 'jquery' );
wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js', array(), null, false );
wp_enqueue_script( 'jquery');
});
Есть ли какие-либо проблемы с кодом?
Очевидно, что отключение отладки - это обходной путь, но очень плохая практика, не так ли?
3 answers
На основе ошибки...
add_action( 'wp_enqueue_scripts', function(){
if (is_admin()) return; // don't dequeue on the backend
wp_deregister_script( 'jquery' );
wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js', array(), null, false );
wp_enqueue_script( 'jquery');
});
Честно говоря, если у вас нет огромного трафика в обширной географической зоне, я бы сказал, что CDN сильно переоценены. Я наблюдал за зависанием на сайтах, которыми управлял, и очень часто узким местом является CDN - я смотрю на вас в Google. Таким образом, это может быть не то решение, которое стоит реализовывать.
Во-вторых, удаление основных сценариев из очереди - опасная игра. Плагины и темы зависят от этих сценариев. Если вы загружаете версию, отличную от той, ожидаемые сценарии могут завершиться неудачей.
Очевидно, что отключение отладки - это обходной путь, но очень плохая практика , не так ли?
Производство или разработка? Отладка должна быть отключена на рабочем сервере и включена только во время отладки.
Как отмечается в сообщении об ошибке, вы действительно не хотите deregister the jquery script in the administration area
. Что вы могли бы сделать, чтобы избежать уведомления:
if ( ! is_admin() ) {
add_action( 'wp_enqueue_scripts', function(){
wp_deregister_script( 'jquery' );
wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js', array(), null, false );
wp_enqueue_script( 'jquery');
});
}
Причина, по которой вам не следует отменять регистрацию в области администрирования, заключается в том, что большая часть основных функций WP для раздела администрирования зависит от JavaScript, и команда WP закодировала эту функциональность специально для работы с версией jQuery, которая поставляется с WordPress. В то время как не должно быть никакой разницы в функциональности, если в другая версия jQuery может сделать вашу административную область непригодной для использования.
Если вы используете правый хук, то он не должен жаловаться:
if ( is_admin() ) {
$hook = 'admin_enqueue_scripts';
} elseif ( 'wp-login.php' === $GLOBALS['pagenow'] ) {
$hook = 'login_enqueue_scripts';
} else {
$hook = 'wp_enqueue_scripts';
}
add_action( $hook, function() {
wp_deregister_script( 'jquery' );
wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js', array(), null, false );
wp_enqueue_script( 'jquery');
} );