すでに 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 を介して実行できます。別のドメインのサーバーから最近の投稿のリストを取得するコードをここにコピーしています (したがって、単純な JSON ではなく JSONP を使用しています)。これを変更して単一の投稿を取得する方法については、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);
});
});
});