원인. 프리로딩에 의한 로그아웃
로그아웃 링크(메뉴 아이템, 버튼 등)를 클릭하지 않고, 마우스 오버를 하면 로그아웃될 경우 프리로딩(preloading)에 의한 오류일 가능성이 높습니다.
사이트에 프리로딩이 있는 경우 a 태그가 있는 링크에 마우스를 오버하면 해당 URL에 페이지를 백그라운드로 로딩하게 됩니다. 이때, 로그아웃이 동작하게 됩니다.
해결방법 1. 사이트 전체에서 비활성화

‘설정 > Perfmatters’의 프리로딩 탭에서 해당 기능을 비활성화합니다. 이렇게 하면 당연히 사이트 전체에서 프리로딩 기능을 사용할 수 없습니다.
해결방법 2. 로그아웃 페이지 링크를 비활성화
속도향상을 위해 프리로딩을 유지하길 원하는 경우 아래 방법을 사용합니다.
제외 하고자 하는 링크에 “data-no-instant” 를 삽입 합니다. Ultimate Member 처럼 로그아웃을 페이지로 제공하는 경우라면, 메뉴 아이템 등에 페이지가 아닌 링크로 사용합니다.
<a href="https://domain.com/logout" data-no-instant>Logout</a>
walker_nav_menu_start_el Filter 를 통해 ‘data-no-instant’ Attribute 를 추가할수 있습니다.
add_filter( 'walker_nav_menu_start_el', function( $item_output, $item, $depth, $args ){
if( ! function_exists("um_get_core_page") ) return $item_output;
if( um_get_core_page('logout') == $item->url ){
// if( "로그아웃" == $item->title ){
// Link attributes.
$attributes = ! empty( $item->attr_title ) ? ' title="' . esc_attr( $item->attr_title ) .'"' : '';
$attributes .= ! empty( $item->target ) ? ' target="' . esc_attr( $item->target ) .'"' : '';
$attributes .= ! empty( $item->xfn ) ? ' rel="' . esc_attr( $item->xfn ) .'"' : '';
$attributes .= ! empty( $item->url ) ? ' href="' . esc_attr( $item->url ) .'"' : '';
$attributes .= ' class="menu-link ' . ( $depth > 0 ? 'sub-menu-link' : 'main-menu-link' ) . '"';
$attributes .= ' data-no-instant';
// Build HTML output and pass through the proper filter.
$item_output = sprintf( '%1$s<a%2$s>%3$s%4$s%5$s</a>%6$s',
$args->before,
$attributes,
$args->link_before,
apply_filters( 'the_title', $item->title, $item->ID ),
$args->link_after,
$args->after
);
}
return $item_output;
} ,99, 4);
Code language: PHP (php)
,또는 nav_menu_link_attributes 필터로 특정 메뉴 ID 값으로 적용할수 있습니다.
add_filter( 'nav_menu_link_attributes', function( $atts, $item, $args ){
// 869282 : top 메뉴 로그아웃 메뉴
// 838204 : 2차 메뉴 로그아웃 메뉴
if( in_array( $item->ID , array(869282 , 838204) ) ){
$atts['data-no-instant'] = 'data-no-instant';
}
return $atts;
}, 10, 3 );
Code language: PHP (php)
해결방법 3. 로그아웃 페이지만 제외
만약 Ultimate Member와 같이 로그아웃이 페이지로 설정되어 있다면, 해당 페이지에서 Instant Page를 제외시켜도 됩니다.

만약, 해당 페이지의 업데이트 중에 로그아웃이 일어나 변경이 불가능할 수도 있습니다. 이 경우 아래의 순서를 따릅니다.
아래는 Ultimate Member 기준입니다.
1) 새 페이지를 만들고, 인스턴트 페이를 비활성화합니다. 예) 로그아웃 2
2) Ultimate Member 설정에서 위에서 만든 페이지를 로그아웃 페이지로 지정합니다.
3) 메뉴에서 기존 로그아웃 페이지 대신 새로 만든 로그아웃 페이지를 메뉴 아이템으로 추가합니다.
4) 기존 로그아웃 펠이지를 삭제하고, 로그아웃 2를 로그아웃으로 이름을 변경합니다.
5) 사용자 화면에서 새로운 로그아웃 메뉴 아이템에 마우스를 오버한 후, 아무 페이지나 클릭해서 로그아웃이 일어나지 않는지 확인합니다.