質問: get_posts('numberposts=-1&offset=$first'); foreach($myposts as $post) : ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endforeach; ?> </ul> <h3>categories</h3> <ul> <?php wp_list_categories('title_li=&orderby=name'); ?> </ul> </div> このページを$ .ajax()でロードすると、firebugまたはfiddlerが "301 moved permanently"エラーで応答する理由は何ですか?もう一度入力すると、それぞれのajaxリクエストを中止しても、私のブラウザはクラッシュし続けます。そのため、複数のajax要求が発生することはありません。$ .ajaxはmydomain.com/searchmapを要求し、mydomain.com/searchmapはすべてのページ、投稿、および猫についてサーバーを要求します。何か案は?私は完全に無知です!
回答: 私はあなたの呼び出しがどこかで301応答でwp_redirectを実行するページを推測しています。本当にあなたのために答えを持っていませんが、多分あなたは以下を試すことができます。 ajaxは呼び出し元のページの種類がわからないため、リダイレクトを引き起こす奇妙なquery_varsがロードされている可能性があります。 あなたがページをロードするためにパーマリンクを使っています、あなたは非パーマリンクurlを使ってみることができますか? プラグインフォルダでwp_redirectをテキスト検索して、問題がないかどうかを確認します。 ajax呼び出しアクション. var response; jquery.post( // see tip #1 for how we declare global javascript variables myajax.ajaxurl, { // here we declare the parameters to send along with the request // this means the following action hooks will be fired: // wp_ajax_nopriv_myajax-submit and wp_ajax_myajax-submit action : 'searchmap', // other parameters can be added along with "action" postid : myajax.postid, count : '16' }, function( response ) { jquery("#div-searchmap").html(response); jquery("#div-searchmap").show(); } ); あなたがwp_ajaxを使いたいならば、あなたはもう少し追加する必要があるでしょう。 // declare the url to the file that handles the ajax request (wp-admin/admin-ajax.php) wp_localize_script( 'my-ajax-request', 'myajax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) ); // this hook is fired if the current viewer is not logged in if (isset($_get['action'])) { do_action( 'wp_ajax_nopriv_' . $_get['action'] ); } // if logged in: if (isset($_post['action'])) { do_action( 'wp_ajax_' . $_post['action'] ); } if(is_admin()) { add_action( 'wp_ajax_searchmap', 'my_searchmap_function' ); } else { add_action( 'wp_ajax_nopriv_searchmap', 'my_searchmap_function' ); } 私のajaxスクリプトにpost変数を使用しているので、adminで実行されるので、jqueryスクリプトをgetで作成する場合は、adminの外部でnorpriv関数を呼び出す必要があります。 (今これを考え出しただけで)あちこちでスクリプトを修正しなければならないかもしれません、それはただ手に負えない例です。関数はあなたが必要とするデータを返さなければなりません。例えば:function my_searchmap_function() { // start output buffer ob_start(); ?> div> <h3>pages</h3> <ul> <?php wp_list_pages('title_li=&depth=0&exclude='); ?> </ul> <h3>posts</h3> <?php $first = 0;?> <ul> <?php $myposts = get_posts('numberposts=-1&offset=$first'); foreach($myposts as $post) : ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endforeach; ?> </ul> <h3>categories</h3> <ul> <?php wp_list_categories('title_li=&orderby=name'); ?> </ul> </div> <?php $output = ob_get_contents(); // stop output buffer ob_end_clean(); $response = json_encode($output); // response output header( "content-type: application/json" ); echo $response; // important: don't forget to "exit" exit; }