2

内部に wordpress ループを含む php ファイル (loopHandle.php) があり、これを Web ページの div 内にロードしたいと考えています。

$date ("2012-6") の文字列変数を持つクリック イベントを使用して呼び出しを行います。投稿を日付で並べ替えるため、この変数は wordpress ループにとって重要です。

これを段階的に実行することにしました。これまでのところ、AJAX 呼び出しが機能し、変数 $date で div に応答しています。

これが私の見方です。クリック イベントで、次のリンクを使用して、使用したい変数を送信します。

$link_url = esc_url(wp_nonce_url( admin_url('admin-ajax.php?&action=dynamic_date&my_date='.$date), "dynamic_date_nonce")); ?>

アクション、ノンス、およびカスタム変数を wordpress の ajax プロセッサ (admin-ajax.php) に送信しています。これにより、functions.php で関数がトリガーされます。これは、送信した変数を実際に処理する場所です。

ここに私が直面している問題があります。送信された変数を使用して ajax 呼び出しに応答し、wordpress ループで応答するにはどうすればよいですか?

私が考えたいくつかのオプション:

$wp_loop = if($loop->have_posts()) { 
while($loop->have_posts()) { 
the_post();
get_template_part( 'content', get_post_format() );
} 
} wp_reset_query();
$response = new WP_Ajax_Response();
$response->add(array(
'what' => 'fulldate',
'data' => $wp_loop)); 
$response->send(); 

それは、棒でそれを突き刺して、何が起こるかを見るというものでした。

もう 1 つの理論は、関数で使用する$date = $_GET['my_date];ことhandleLoop.phpです。functions.php ではない場所から変数を取得できますか? 次に、次のように応答できますか。

$loopHandle = include(handleLoop.php);
$response->add(array(
'what' => 'fulldate',
'data' => $wp_loop)); 
$response->send(); 

とにかく、私は自分の問題を正しく伝えたことを願っています。もちろん、助けていただければ幸いです。

編集:次を使用してキーペアをキャプチャします。

s.data = $.extend(s.data, { action: url.action, _ajax_nonce: url._wpnonce, my_date: url.my_date });

4

1 に答える 1

0

2 つの質問:

1) データの送信方法: jQuery リクエストでは、データ引数に日付を必ず含めてください (GET 構文を使用して独自の質問で対処したようです)。

2) どのように対応しますか? WP_Ajax_Respond クラスは XML を送信するためのものですが、特に HTML を返す可能性が高いため、少し重すぎる可能性があります。

代わりに、PHP 配列を作成してループの各反復の結果を格納し、配列を json_encode して JSON を返しますか?

http://codex.wordpress.org/AJAX_in_Plugins

于 2013-09-16T15:39:29.703 に答える