如果你已經在你的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);
});
});
});
這不是一個壞主意!一旦我這樣做了,我怎麼會然後處理該網址,以找出哪些帖子加載到index.php文件? – Hendeca
我現在在打字了!從我剛剛做到這一點的網站複製一些代碼。等待幾分鐘... – manishie
嗯,我想我可能已經找到了一個解決方案,使用我的現有代碼更好一點,通過使用mod_rewrite將網址轉換爲索引頁網址,並獲取由變量處理的網址PHP在索引頁面中,我將在嘗試後將它作爲答案發布。你也可以解釋一下上面的代碼實際上是如何通過url進行解析才能做出正確的ajax請求的? – Hendeca