Я работаю над интеграцией Deeplinking в WordPress сайт, который я разрабатываю;
http://dhp.camoconnell.com/
проблема, она работает на подстраницах, но не на главной странице. например, это работает
http://dhp.camoconnell.com/portfolio/snow/5
но это не так,
http://dhp.camoconnell.com/2
Я использую Modernizr для проверки истории HTML5 и использую адрес jquery в качестве запасного варианта;
function initUrlHandler() {
if(Modernizr.history) {
if(window.location.hash != '') {
changeUrl({}, window.location.hash.replace('#/', '/'));
}
window.addEventListener('popstate', function(e) {
onUrlChange(window.location.pathname);
},true);
} else {
if(window.location.pathname.length > 1) {
window.location.href = '/#'+window.location.pathname;
}
$.address.externalChange(function(event) {
onUrlChange(event.value);
});
onUrlChange(window.location.hash);
}
if(firstUrlChange) {
onUrlChange(document.location.pathname);
}
}
function changeUrl(state,url) {
if(Modernizr.history) {
history.pushState(state, null, '/'+url);
} else {
window.location.hash = '/'+url;
}
}
function onUrlChange(pathName) {
var pathSplit = pathName.match(/(\d+)/);
currentSlide = (pathSplit == NaN || pathSplit == undefined || pathSplit > options.slides.length) ? 0 : parseInt(pathSplit)-1;
if(firstUrlChange) {
firstUrlChange = false;
loadInitImages();
}
Шаблоны, использованные в обоих примерах, одинаковы. alert()
, помещенный в init initc initUrlHandler()
, ничего не возвращает, что наводит меня на мысль, что, возможно, файл .htaccess
мешал.
Я посмотрел на него, но не смог найти там проблему.
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [L]
</IfModule>
# END WordPress
спасибо за любую помощь, действительно застрял