고정: Wordpress 사이트 Uncaught TypeError: jQuery(...).live는 JS가 있는 이미지가 표시되지 않도록 하는 함수가 아닙니다.
WordPress 사이트를 구축하고 있는데 갑자기 다음 오류가 나타납니다.
Uncaught TypeError: jQuery(...).live is not a function
at HTMLDocument.<anonymous> (main.js?ver=1.1:214)
at i (jquery.js?ver=1.12.4-wp:2)
at Object.fireWith [as resolveWith] (jquery.js?ver=1.12.4-wp:2)
at Function.ready (jquery.js?ver=1.12.4-wp:2)
at HTMLDocument.J (jquery.js?ver=1.12.4-wp:2)
이 에러는 갑작스러운 일이기 때문에 어떻게 재현해야 할지 모르겠습니다.
내 사이트를 방문했을 때 JS가 있는 이미지는 로드되지 않습니다.
플러그인을 확인했는데 Element 또는 모든 이미지가 표시되어 있는 사이트를 볼 때 추가된 새로운 항목이 없는 것 같습니다.이 문제를 해결하는 방법을 알고 계십니까?이 사이트 중 순수 WordPress만 원시 코딩된 사이트는 없습니다.
누가 요소를 검사하여 어떤 플러그인이 문제의 원인인지 알 수 있습니까?
Wordpress 5.5에서 jQuery 마이그레이션 사용을 중지했습니다.이 변경으로 인해 이전 플러그인과 테마에서 문제가 발생하고 있습니다.Wordpress 5.5로 업그레이드한 후 문제가 발생할 경우 이 플러그인을 설치하면 문제가 해결될 수 있습니다.https://wordpress.org/plugins/enable-jquery-migrate-helper/
단, 최종적으로는 현재 플러그인과 테마를 jQuery 마이그레이션에 의존하지 않는 버전으로 업그레이드하는 것이 좋습니다.그렇지 않으면 이러한 플러그인에서 jQuery 마이그레이션이 필요하지 않은 플러그인으로 이동해 보십시오.그렇지 않으면 향후 호환성 문제 또는 이러한 구식 플러그인/테마로 인한 보안 취약성에 직면할 가능성이 높습니다.
업데이트: 2020년9월 18일
Enable jQuery Migrate Helper 플러그인의 소스 코드를 확인했더니 실행 조건이 다음과 같습니다.
if ( version_compare( $GLOBALS['wp_version'], '5.6-alpha', '<' ) && ! class_exists( 'jQuery_Migrate_Helper' ) ) {
include_once __DIR__ . '/class-jquery-migrate-helper.php';
add_action( 'plugins_loaded', array( 'jQuery_Migrate_Helper', 'init_actions' ) );
}
따라서 플러그인은 Wordpress 5.5까지만 작동합니다.워드프레스가 버전 5.6-alpha에 도달하면 작동을 멈춥니다.
업데이트: 2021년 2월 15일
플러그인 코드가 Wordpress 5.6보다 이전 버전으로 업데이트되었습니다.단, 버전 5.6 이후에는 다음 기능이 포함됩니다.jquery-migrate-3.3.2대신jquery-migrate-1.4.1또한 파일 수가 훨씬 적습니다(jquery-ui 스크립트 참조).이전 버전의 jquery를 계속 사용하려면 몇 가지 옵션이 있습니다.
옵션 A.jquery migrate 플러그인을 새 폴더에 복사하고(기본적으로 자신의 플러그인으로 설정), 이름을 변경하고,class-jquery-migrate-helper.php파일, 이 행은replace_scripts기능:
if ( version_compare( $GLOBALS['wp_version'], '5.6-alpha', '<' ) || 'yes' === get_option( '_jquery_migrate_downgrade_version', 'no' ) ) {
다음으로 대체:
if(true) {
그러면 플러그인은 항상 이전 버전의 jquery를 설치합니다.
옵션 B다음 절차를 수행하여 이전 jquery 파일만 포함하는 새 플러그인을 만듭니다.
- 새 플러그인을 만듭니다.
- 「」의 것을 합니다.
enable-jquery-migrate-helper/jsjs/을 사용하다 - 플러그인 파일에 다음 코드를 추가합니다.
add_action('wp_default_scripts', function ($scripts) {
$setScripts = function($scripts, $handle, $src, $deps = [], $ver = false, $in_footer = false) {
$script = $scripts->query( $handle, 'registered' );
if ( $script ) {
// If already added
$script->src = $src;
$script->deps = $deps;
$script->ver = $ver;
$script->args = $in_footer;
unset( $script->extra['group'] );
if ( $in_footer ) {
$script->add_data( 'group', 1 );
}
} else {
// Add the script
if ( $in_footer ) {
$scripts->add( $handle, $src, $deps, $ver, 1 );
} else {
$scripts->add( $handle, $src, $deps, $ver );
}
}
};
$assets_url = $assets_url = plugins_url( 'js/', __FILE__ );
$setScripts( $scripts, 'jquery-migrate', $assets_url . 'jquery-migrate/jquery-migrate-1.4.1-wp.js', array(), '1.4.1-wp' );
$setScripts( $scripts, 'jquery-core', $assets_url . 'jquery/jquery-1.12.4-wp.js', array(), '1.12.4-wp' );
$setScripts( $scripts, 'jquery', false, array( 'jquery-core', 'jquery-migrate' ), '1.12.4-wp' );
$setScripts( $scripts, 'jquery-ui-core', $assets_url . 'jquery-ui/core.min.js', array( 'jquery' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-effects-core', $assets_url . 'jquery-ui/effect.min.js', array( 'jquery' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-effects-blind', $assets_url . 'jquery-ui/effect-blind.min.js', array( 'jquery-effects-core' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-effects-bounce', $assets_url . 'jquery-ui/effect-bounce.min.js', array( 'jquery-effects-core' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-effects-clip', $assets_url . 'jquery-ui/effect-clip.min.js', array( 'jquery-effects-core' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-effects-drop', $assets_url . 'jquery-ui/effect-drop.min.js', array( 'jquery-effects-core' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-effects-explode', $assets_url . 'jquery-ui/effect-explode.min.js', array( 'jquery-effects-core' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-effects-fade', $assets_url . 'jquery-ui/effect-fade.min.js', array( 'jquery-effects-core' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-effects-fold', $assets_url . 'jquery-ui/effect-fold.min.js', array( 'jquery-effects-core' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-effects-highlight', $assets_url . 'jquery-ui/effect-highlight.min.js', array( 'jquery-effects-core' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-effects-puff', $assets_url . 'jquery-ui/effect-puff.min.js', array( 'jquery-effects-core', 'jquery-effects-scale' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-effects-pulsate', $assets_url . 'jquery-ui/effect-pulsate.min.js', array( 'jquery-effects-core' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-effects-scale', $assets_url . 'jquery-ui/effect-scale.min.js', array( 'jquery-effects-core', 'jquery-effects-size' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-effects-shake', $assets_url . 'jquery-ui/effect-shake.min.js', array( 'jquery-effects-core' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-effects-size', $assets_url . 'jquery-ui/effect-size.min.js', array( 'jquery-effects-core' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-effects-slide', $assets_url . 'jquery-ui/effect-slide.min.js', array( 'jquery-effects-core' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-effects-transfer', $assets_url . 'jquery-ui/effect-transfer.min.js', array( 'jquery-effects-core' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-ui-accordion', $assets_url . 'jquery-ui/accordion.min.js', array( 'jquery-ui-core', 'jquery-ui-widget' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-ui-autocomplete', $assets_url . 'jquery-ui/autocomplete.min.js', array( 'jquery-ui-menu', 'wp-a11y' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-ui-button', $assets_url . 'jquery-ui/button.min.js', array( 'jquery-ui-core', 'jquery-ui-widget' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-ui-datepicker', $assets_url . 'jquery-ui/datepicker.min.js', array( 'jquery-ui-core' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-ui-dialog', $assets_url . 'jquery-ui/dialog.min.js', array( 'jquery-ui-resizable', 'jquery-ui-draggable', 'jquery-ui-button', 'jquery-ui-position' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-ui-draggable', $assets_url . 'jquery-ui/draggable.min.js', array( 'jquery-ui-mouse' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-ui-droppable', $assets_url . 'jquery-ui/droppable.min.js', array( 'jquery-ui-draggable' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-ui-menu', $assets_url . 'jquery-ui/menu.min.js', array( 'jquery-ui-core', 'jquery-ui-widget', 'jquery-ui-position' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-ui-mouse', $assets_url . 'jquery-ui/mouse.min.js', array( 'jquery-ui-core', 'jquery-ui-widget' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-ui-position', $assets_url . 'jquery-ui/position.min.js', array( 'jquery' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-ui-progressbar', $assets_url . 'jquery-ui/progressbar.min.js', array( 'jquery-ui-core', 'jquery-ui-widget' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-ui-resizable', $assets_url . 'jquery-ui/resizable.min.js', array( 'jquery-ui-mouse' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-ui-selectable', $assets_url . 'jquery-ui/selectable.min.js', array( 'jquery-ui-mouse' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-ui-selectmenu', $assets_url . 'jquery-ui/selectmenu.min.js', array( 'jquery-ui-menu' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-ui-slider', $assets_url . 'jquery-ui/slider.min.js', array( 'jquery-ui-mouse' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-ui-sortable', $assets_url . 'jquery-ui/sortable.min.js', array( 'jquery-ui-mouse' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-ui-spinner', $assets_url . 'jquery-ui/spinner.min.js', array( 'jquery-ui-button' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-ui-tabs', $assets_url . 'jquery-ui/tabs.min.js', array( 'jquery-ui-core', 'jquery-ui-widget' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-ui-tooltip', $assets_url . 'jquery-ui/tooltip.min.js', array( 'jquery-ui-core', 'jquery-ui-widget', 'jquery-ui-position' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-ui-widget', $assets_url . 'jquery-ui/widget.min.js', array( 'jquery' ), '1.11.4-wp', 1 );
$setScripts( $scripts, 'jquery-touch-punch', false, array( 'jquery-ui-widget', 'jquery-ui-mouse' ), '0.2.2', 1 );
}, -10);
Wordpress 5.5에서 jquery migrate 사용을 중지했습니다.오래된 플러그인과 테마로 인해 문제가 발생하고 있습니다.이것이 수정 사항입니다.https://wordpress.org/plugins/enable-jquery-migrate-helper/
언급URL : https://stackoverflow.com/questions/63481440/fixed-wordpress-site-uncaught-typeerror-jquery-live-is-not-a-function-cau
'source' 카테고리의 다른 글
| html 코드에서 json 파일을 사용하는 방법 (0) | 2023.03.08 |
|---|---|
| 오류 ReferenceError: 개체ID가 정의되지 않았습니다. (0) | 2023.03.08 |
| 워드프레스를 사용하여 클릭 시(9GaG.com 등) GIF를 재생하는 방법 (0) | 2023.03.08 |
| html 태그에 ng-app과 ng-controller를 선언하는 것이 나쁜가요? (0) | 2023.03.08 |
| 반응 - 구성 요소 전체 화면(높이 100%) (0) | 2023.03.08 |