2011-01-09 21 views
0
<div class="home-thumbs bottom-thumbs"> 
<?php $home_query_bottom = new WP_Query("cat=&showposts=20&offset=5"); $b = 0; ?> 
<ul class="thumbs"> 
    <?php while ($home_query_bottom->have_posts()) : $home_query_bottom->the_post(); 
     $do_not_duplicate = $post->ID; $b++; ?> 

     <li class="post-<?php the_ID(); ?> thumb"><?php get_the_image(array('custom_key' => array('thumbnail'), 'default_size' => 'thumbnail', 'width' => '160', 'height' => '160')); ?></li> 
    <?php endwhile; wp_reset_query(); $b = 0; ?> 
</ul> 
</div> 
<div id="output"></div> 
<script type="text/javascript"> 


$('.go-right').click(function(){ 

$.ajax({ 

      type: "POST", 
      url: "process_thumbs.php", 
      data: "showposts=25", 
      success: function(html){ 
       $("#output").html(html); 
      } 

}); 
}); 
</script> 

// process_thumbs.php 
    <body> 

    <?php $numposts = $_POST['showposts']; ?> 
    <div><?php echo "this is the amount of posts to be shown: $numposts"; ?></div> 
    </body> 

シンプルなajax呼び出しのようです。 .go-rightは存在しません。これはただのファイルであり、クリックが実行されていることをテストしました。このajax呼び出しは基本的には機能しません。たぶん誰かが私のコードが間違っているかどうかを確認できます。私のjquery ajaxは私のWordPressサイトでは動作していません

理想的には、wp-Queryループを使用して、ajaxを使用して、別のショーポストでそのループを再実行し、誰かがクリックするとオフセットしたいと考えています。

答えて

0

.go-rightはハンドラが本当にあなたの.go-right要素

に接続されていることを確認するために、

$(document).ready(function() { 
}) 

または類似であなたのjqueryのをラップ前にjQueryのコードOR(良い)であることを確認しますprocess_thumbs.php<body>タグを出力しないでください。多分、これは混乱するjQueryです。

Firebugコンソール/ネットタブをチェックして、リクエストが実際に送信されていることを確認します。

.ajaxerrorコールバックを追加して、実際にajaxコールが実際に実行されるようにします。


うん、wordpressのヘルパー関数で絶対URLを使用しますが:

... 
url: '<?php echo get_bloginfo('url').'/wp-content/myplugin/mycallback';?>' 
... 

この方法で、あなたのすべてのURLは、WordpressのルートURLからの相対になります。 Wordpressので

+0

感謝:

は私のテストコードに従います。私はchromeの開発者ツールを調べて、それは私のprocess_thumbs.php 404エラーと言う。 www.url.com/process_thumbs.phpはurlではありません。私はワードプレスで絶対パスが必要だと思いますか? – Adam

+0

私の答えを更新しました –

-2

(私はバージョン3.0を使用して上向きにしています)、により他のJavaScriptライブラリ(つまりプロトタイプ)との競合にあなたが書かなければならない:

$JQuery('.go-right').click(function(){ 

の代わりに、また

$('.go-right').click(function(){ 

FirebugでJqueryライブラリへのリンクが正しいことを確認してください。

もう一つ... Wordpressのは、すでにjQueryのを含んでいる、あなたは、書面でそれを得ることができます。

<?php wp_enqueue_script("jquery"); ?> 

<?php wp_head(); ?> 

最初の行が二行目(wp_head())の前に行かなければならないか、そうでなければ動作しません。 。

0

私はドキュメント準備ハンドラ内にコードを書き換える:

$(関数(){ あなたのコード });

うまくいきます。

コードの位置関係に問題があるか、何か間違えています。

<html> 
    <head> 
    <script type="text/javascript"> 

    $(function() { 

    $('.go-right').click(function(){ 

     $.ajax({ 

        type: "POST", 
        url: "process_thumbs.html", 
        data: "showposts=25", 
        success: function(html){ 
         $("#output").html(html); 
        } 

     }); 
    }); 

     }); 

    </script> 

    </head> 
    <body > 


    <div id="output"></div> 

    <a class="go-right">RIGHT</a> 

    </body> 
    </html> 
関連する問題