У меня возникла странная проблема, возникающая при изменении постоянных ссылок по умолчанию в WordPress.
Когда я помещаю этот код в свой файл functions.php в свою тему (или даже в корневой файл index.php в WordPress) и перемещаюсь между и обновляя несколько страниц (например, страницу / about), мой счетчик часто работает дважды.
Эта проблема воспроизводится на каждом сервере, который я пробовал, и на любой теме или установке WordPress. Еще одна вещь, которая делает мой мозг еще более запутанным, заключается в том, что он не встречается в Safari, Internet Explorer (6, 7 и 8), но только в Firefox . Я использую Firefox 3.6.8 и пробовал его как в Mac OS X, так и в Windows XP.
session_start(); $counter = $_SESSION['wp_action_counter']; if( !isset($counter) ){ $counter = 0; } $counter++; echo $counter; $_SESSION['wp_action_counter'] = $counter;
Мои правила .htaccess выглядят так:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
Мне любопытно, почему это происходит и когда-либо благодарит того, кто может помочь мне решить проблему.
Если он увеличивается в два раза, эти два запроса отправляются на ваш сервер, проверяют журнал сервера или устанавливают firebug и просматривают вкладку net, таким образом вы можете убедиться, что происходит, вместо того, чтобы предположить, что это может быть (ссылка предварительно запрограммирован , запрашивается php-сгенерированное изображение ..).
Просто идея … есть ли сломанный образ, скрипт, css (или что-то вроде), который запускает второй запрос? У меня была эта проблема некоторое время назад, и IE кэшировал полученный результат 404, но FF всегда повторно запрашивает сломанное изображение. Путь изображения был переписан на мой индексный путь, который вызвал счетчик …
Я наконец выяснил, в чем проблема.
Когда у меня есть <?php wp_head(); ?>
<?php wp_head(); ?>
в моем заголовке, WordPress добавляет эту строку:
<link rel='next' title='About' href='http://mysite.dev/about/' />
Эта ссылка предварительно загружена, и это причина, по которой счетчик работает дважды. Настройка вывода wp_head();
или его устранение решает проблему.
Вы можете найти информацию о том, как управлять выходом в своем заголовке здесь: http://wpquicktips.wordpress.com/2010/08/30/keep-a-track-of-what-happens-in-your-header-and -footer /