Возможная ошибка: update_user_meta обновляет две уникальные мета-записи

На странице CPT я проверяю, вошел ли пользователь в систему; если они есть, я проверяю, есть ли у них мета-запись, которая является 'session-' + заглушкой текущей страницы. Если они это сделают, я увеличиваю значение на единицу.

Я думал, что все работает нормально, но я только что заметил, что он фактически увеличивает два отдельных поля user_meta. На данный момент у меня есть три страницы CPT (назовем их Burt, Ernie & Ralph); если я обновляю страницу для Burt , она увеличивает мое поле user_meta ( session-burt ) на 1, что отлично; однако он также увеличивает значение session-ralph на 1.

У меня нет открытой страницы Ralph , и я повторяю все, что я могу придумать, чтобы попытаться проследить ошибочную строку кода, но я не понимаю, почему она это делает. Это невероятно раздражает.

Вот мой код. Надеюсь, я просто слеп к чему-то действительно очевидному, и это не ошибка WP.

 $stub = $post->post_name; $sessionKey = 'session-' . $stub; $viewedKey = $stub . '-lastviewed'; $sessionViewsArray = get_user_meta($current_user->ID, $sessionKey); $sessionViews = (int)$sessionViewsArray[0]; echo '<pre>'; print_r($sessionViewsArray); echo '</pre>'; echo '<h1>I think there are ' . $sessionViews . ' views</h1>'; $lastViewedArray = get_user_meta($current_user->ID, $viewedKey); $lastViewedTime = $lastViewedArray[0]; if ($lastViewedTime) { $lastViewed = date('l jS FY, g:ia', $lastViewedTime); } else { $lastViewed = 'First time - good luck!'; } $newSessionViews = $sessionViews + 1; update_user_meta($current_user->ID, $sessionKey, $newSessionViews); update_user_meta($current_user->ID, $viewedKey, time()); echo '<h1>I think I just updated ' . $sessionKey . '</h1>'; /// // Now let's update the page views /// $pageViewsArray = get_post_meta($post->ID, 'totalviews'); $pageViews = (int)$pageViewsArray[0]; $pageViews += 1; update_post_meta($post->ID, 'totalviews', $pageViews); 

Стоит отметить, что это, по-видимому, только одна запись session-ralph которая затронута; запись ralph-lastviewed не обновляется, если я обновляю страницу Burt.

Любая помощь будет принята с благодарностью!

ОБНОВИТЬ:

В соответствии с удивительным ответом от @dalbaeb ниже, я решил использовать следующий крючок:

remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);

… который удалил теги <link rel='next'... и <link rel='prev'... из моего заголовка и сразу решил проблему.

Вы случайно используете Firefox для проверки своей страницы? Если это может быть причиной его предварительной выборки в сочетании с WordPress rel='next' . Проверьте источник страницы для этих тегов rel и посмотрите, регистрирует ли Firebug дополнительный запрос GET на страницу, указанную в атрибуте rel тега rel .

Существует расширение Firefox Fasterfox , и оно будет префабрировать все . Отключение adj_posts_rel_link_wp_head не поможет.
Вы должны выйти из своего кода в таких случаях:

 if ( isset ( $_SERVER["HTTP_X_MOZ"] ) and 'prefetch' === $_SERVER["HTTP_X_MOZ"] ) return;