web-dev-qa-db-ja.com

ajaxの問題とphpページへのパス

私はAjaxメソッドからphpページを呼び出したいと思います。警告は問題なく動作し、コードもwordpressの外部でテストされていますが、ここではphpページは呼び出されないようです。

私はそれらの中でいくつかの記事を見つけました: ワードプレスでajax呼び出しとJSONを管理する方法 しかし私はもっと混乱します。ここで何をすればいいのか教えてください。 ( "diapo.php"ではうまくいきませんが、どちらもそうではありません)

これがjqueryを使った呼び出しです。

        $('.sous-cat').find('img').click(function(){
                var alt_p = $(this).attr('alt');
                //alert(alt_p);

                $.ajax({
                    type: "POST",
                    url: "<?php bloginfo( 'template_directory' ) ?>/diapo.php",
                    data: {p:alt_p},
                    success: function(data) {
                        alert(data);
                    }
                });
                return false;
        });

そして今のところphpページ:

        <?php
        /*
        $p = $_POST['p'];
        query_posts( 'cat=3&p=$p' );
        while (have_posts()) : the_post();
            $result = the_post_thumbnail('normal');
        endwhile;
        wp_reset_query();*/

        echo '$result';

        ?>

ご協力いただきありがとうございます

3
Paul_p

WordPressのajax URLを使うには、wp_localize_scriptを使ってvarを渡すことができます。

wp_enqueue_script( 'functions', get_bloginfo( 'stylesheet_directory' ) . '/js/functions.js', array( 'jquery' ), false);
    wp_localize_script( 'functions', 'MyAjax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) );

Functions.jsで

        $.ajax({
                type: "POST",
                url:  MyAjax.ajaxurl,
                data: {p:alt_p},
                success: function(data) {
                    alert(data);
                }
            });
3
Chris_O

PHPファイルを直接呼び出すことは、Ajaxを実装するためのより一般的な方法であり、WordPressでは使用しないでください。

CodexのPluginsにあるAjax を参照して、そこの例をゆっくりと試してください。はい、それはあなたがWPの経験があまりない場合には最も簡単なことではありませんが、それがAjaxを行う方法です。

1
Rarst