如果您已经在 index.php 文件中使用了 AJAX,那么: 一些想法。在您的服务器上,您可以删除 single.php 文件并创建指向 index.php 文件的符号链接:
对于 *nix(包括 os x):
ln -s index.php single.php
或者在 single.php 文件中,您可以删除所有内容并包含 index.php:
<?php include('index.php'); ?>
控制是否通过 AJAX 加载需要在您的客户端上完成。
还是您根本没有 AJAX 工作?如果不是,那么答案会稍微复杂一些。以下是我使用 wordpress 网站设置 AJAX 的方法:
在服务器上,我使用JSON API wordpress 插件来轻松地通过 AJAX(JSON 格式)提供内容。
在客户端上,您可以使用 jQuery 来捕获任何指向 wordpress 的链接并通过 AJAX 运行它们。我在这里复制一些代码,从不同域的服务器中检索最近的帖子列表(所以我使用的是 JSONP 而不是直接的 JSON)。您可以查看 JSON API 文档,了解如何修改它以获取单个帖子。
jQuery(function($) {
$('a').click(function(event) {
$('body').css('cursor', 'wait');
event.preventDefault(); // this prevents the regular behavior of clicking a link
$.ajax({
type:'GET',
url:url,
async:false,
jsonpCallback:'jsonCallback',
contentType:"application/json",
data: {
json: 'get_recent_posts',
count: 10,
page: page + 1
},
dataType:'jsonp'
}).always(function(){
jQuery('body').css('cursor', 'auto');
}).done(function(json) {
$.each(json.posts, function(index, value) {
tags = [];
$.each(value.tags, function(index, value) {
tags.push('<a href="' + tag_url + value.slug + '">' + value.title + '</a>');
});
html =
'<div>' +
'<header class="entry-header">' +
value.title +
'<br>' +
value.date +
'</header>' +
'<div class="entry-content">' +
value.content +
'</div>' +
'</div>' +
'<span class="labels_label">'+
'Labels: ' +
'</span>' +
'<span class="labels">' +
tags.join(', ') +
'</span>' +
'<hr>';
$('.full-width .content').append(html);
});
});
});