我正在为客户编写一个网站,他们要求这样做,因为他们在一个父母下面有很多侧边栏页面,当点击页面链接时,它每次都会加载到同一区域,而不会重新加载页面。他们还要求URL在重新加载时更改,并且您可以通过转到该特定URL来访问每个页面。不幸的是,我不知道该怎么做。我发现很多教程和片段都在那里,但他们没有提供确切的功能。
例如,如果你去这里:http://lookseewatch.com/independentinsurance/commercial-insurance/
您会看到他们提供的不同类型商业保险的长边栏。当你点击"汽车,"或任何链接,页面应加载到侧栏右侧的div区域。然后,该网址应更改为将此更改反映为http://lookseewatch.com/independentinsurance/commercial-insurance/automobile/。所有这些页面在Wordpress中都是独立且动态的。
有人可以给我一些帮助吗?目前这是生成边栏的方式:
wp_list_pages('title_li=&child_of='.$post->ID.'');
如果您需要我的任何其他代码或对功能有任何疑问,请与我们联系。
谢谢!
答案 0 :(得分:0)
这有点复杂。有很多方法可以捕获用户事件,停止默认行为并在其上运行自定义代码。例如,您可以收听锚点击并返回0以不加载其链接。
但是如果你在浏览器地址栏中更改URL,只要我知道,JS就无法控制它,因为它在网页域之外,从外部网页控制浏览器组件会打开很多安全漏洞
这看起来好像他们想要避免横幅加载以减少命中次数:P如果性能问题,首先你可以使用缓存插件,它将在HD中存储所有数据库查询,并在未来的页面加载中使用这些文件提出新的问题。
您还可以在PHP变量中构建完整的侧边栏,将其缓存为HD并从那里读取,而不是每次都构建整个代码。这就像添加静态HTML片段一样。
答案 1 :(得分:0)
这可以通过一种名为pushstate和AJAX的技术来完成。有一个很棒的jQuery插件叫做PJAX来实现它。 http://pjax.heroku.com/
我刚刚发布了一个名为WP-PJAX的插件,它对整个wordpress网站PJAX进行了驱动。我不确定这是否能解决你的问题,但它可能适合你。 https://github.com/pelmered/wp-pjax