我正在尝试使用ajax在我的wordpress网站中加载新页面,使用wp_nav_menu和一个永久链接设置,例如:/wp-admin/admin-ajax.php?post_name=%postname%/将请求路由到admin -ajax我可以正确处理它(根据wordpress文档。)然而wordpress只是忽略了我的永久链接并坚持其默认链接设置。
这是正确的方法吗?或者我会更好地重写.htaccess文件,这会导致更新到新版本的wp时出现问题吗?
提前感谢您的任何答案。
答案 0 :(得分:1)
<script type="text/javascript">
/*
* Your navigation bar, can be "document" or body if you want to
* apply to every link on your site
*/
var $navigation = $("#site-menu");
//Your main content that will be replaces
var body = "#page-body";
var $body = $(body);
$navigation.delegate("a", "click", function() {
window.location.hash = $(this).attr("href");
return false;
});
$(window).bind('hashchange', function() {
var newHash = window.location.hash.substring(1);
if(newHash) {
$body.fadeOut(200, function() {
$body.hide().load(newHash + " " + body, function() {
$body.fadeIn(200, function() {
});
});
});
};
});
$(window).trigger('hashchange');
</script>
按照正常的方式添加菜单,确保添加一个包含您想要加载的菜单链接的网站菜单ID。
<div id="site-menu">
<?php wp_nav_menu(); ?>
</div>
$ navigation下的所有链接都会添加一个点击事件,用于更新窗口网址哈希。窗口正在侦听哈希更改,并将使用哈希值来发出AJAX请求以重新加载$ body html。
有关详细信息和示例,请参阅:http://css-tricks.com/video-screencasts/85-best-practices-dynamic-content/