私は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';
?>
ご協力いただきありがとうございます
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);
}
});
PHPファイルを直接呼び出すことは、Ajaxを実装するためのより一般的な方法であり、WordPressでは使用しないでください。
CodexのPluginsにあるAjax を参照して、そこの例をゆっくりと試してください。はい、それはあなたがWPの経験があまりない場合には最も簡単なことではありませんが、それがAjaxを行う方法です。