私のhome.phpは、(N)件の投稿と<<前へ&次へ>>リンクのリストを表示します。クリックしたら、Ajaxを使って(N)件の投稿の前後のリストを取得します。これは:私はページ全体をロードしたくないのです。投稿のリストを取得して最新に追加したいだけです。
これのために私はajaxリクエストを作り、パラメータとしてhref(URL)を送ります。問題は、WordPressがURLをグローバル$ query_stringに変換する方法がわからないことです。私自身のものを書くのではなく、WordPressのテスト済みコードを再利用したいです。助けてください
たとえば、次のURLに$ query_stringを入力します。 http://example.com/page/2/?location=boston
WP::parse_request()
をチェックしてください - 残念ながら、それは本当に公共の用途のために設計されたことはありません。あなたはこれを試すことができますが、波及効果はわからない。
global $wp,
$wp_the_query;
// Grab the request_uri component of the referer URL.
if ( ! $url = parse_url( $_GET['my_referer_parameter'] ) )
return 'Oh dear, poorly formed referer.';
// Ewww! Trick WP::parse_request by spoofing REQUEST_URI.
$_SERVER['REQUEST_URI'] = $url['path'] . "?{$url['query']}";
$wp->parse_request();
$wp->query_posts();
// $wp_the_query should now be populated with posts queried by your referer.
while ( $wp_the_query->have_posts() ) {
$wp_the_query->the_post();
the_title();
}
リンク処理の問題はそれ自体が興味深いのですが、Ajaxのユースケースでは、Ajaxが送信するJS変数として、より具体的な情報をページ本体に出力する方が簡単で信頼性が高いと思います。
そのための現在の一般的なやり方は、 wp_localize_script()
を使ってデータを渡すことです。