我网站上的一些链接将用户带到特定的帖子in context on a category page.
在非WP站点上,通过包括#example-div-id
在url中,如下所示:
http://www.example.com#example-div-id
But in a WP environment, this url isn\'t working:
http://www.example.com/?cat=15#post-170
这(错误地)将浏览器窗口跳转到页面的末尾。
But this does work...在页面加载和重新加载页面后手动删除尾部斜杠。浏览器窗口跳转到相应的div或post。
http://www.example.com?cat=15#post-170
.
有人知道这是为什么吗?或者如何让WP消除尾部斜杠?删除尾部斜杠是否安全?
更新
我尝试使用下面的EAMann解决方案,实现了非常好的永久链接,以促进锚点跳转。所取得的成绩彻底打破了我的帖子顺序和排斥儿童的类别。我的导航是基于类别的。我不使用页面,但在导航中使用类别名称。每个“页面”实际上是一个类别档案,显示该类别中的帖子。我所读到的关于永久链接的内容,从%category%开始,我就避免使用永久链接。我当然也不想以年份或帖子id开始永久链接。这在我的网站上没有意义。
http://www.example.com/category/my-category
看起来比http://www.example.com/2009/my-category
当预期的假象是类别名称实际上是这个商业网站上的页面时。
So I\'d appreciate any other explanations why the anchor jumping isn\'t working.
更新#2
(回应EAMann在OP上的评论)我的网站是一个大部分显示静态内容的商业网站。有几个领域以公文包工作为特色,还有博客部分。该网站使用基于类别的导航。所有的网站内容都是以帖子的形式写的。每个帖子都与一个类别相关联,该类别决定了帖子的显示位置。使用创建站点导航菜单
wp_list_categories()
. 单击一个类别将打开一个类别存档,其中显示该类别中的所有帖子。
我目前正在使用默认的permalink结构
http://www.example.com/?cat=15
显示类别页面。
更新#3
经过进一步调查,我用来在页面顶部显示幻灯片的jQuery插件“innerfade”似乎是罪魁祸首。它与尾部斜杠无关。很抱歉走错了路。
如果我注释掉包含插件js文件的php,那么锚点跳转就可以正常工作。我猜一些javascript对页面内容的操作正在破坏跳转。我使用$(window).scrollTo();
.
我感谢大家的时间。
最合适的回答,由SO网友:kevtrout 整理而成
正如我在更新我的问题时所说的。。。页面上的其他javascript与锚点跳转冲突。我实施了更多的js来解决冲突。url看起来几乎与以前一样,但在英镑符号之前插入了一个参数名,
http://www.example.com/?cat=15&hi=#post-170
但我使用jQuery Howto的
\'plugin\' to get url parameters.$.extend({
getUrlVars: function(){
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf(\'?\') + 1).split(\'&\');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split(\'=\');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
},
getUrlVar: function(name){
return $.getUrlVars()[name];
}
});
我检索分配给“hi”url参数的帖子编号,并滚动到具有相同id的帖子上方20px处。
//\'hi\' var used to jump to anchor
var hi = $.getUrlVar(\'hi\');
if ( hi ) {
//scroll to link or search results if url var \'hi\' is present
$(window).scrollTop($(hi).position().top-20);
上面的jquery插件代码和我的自定义代码放在我的javascript文件中,该文件包含在标题中。php