ホームページをローカルホストで作成しています。
Ajaxではwp_query
が必要です。
しかし、多少の誤差があります。理由はわかりません。手伝って頂けますか?
---->これはload_more_ajax.js
です
var page = 2;
var date_pass = "<?php echo($date_filter);?>";
var compare_pass = "<?php echo($compare);?>";
var ajaxurl = "<?php echo admin_url( 'admin-ajax.php' ); ?>";
jQuery(function($){
$('body').on('click', '.loadmore', function(){
var data = {
'action': 'rnm_load_more_ajax',
'page': page,
'date_filter': date_pass,
'compare': compare_pass,
'security': '<?php echo wp_create_nonce("load_more_posts"); ?>'
};
$.post(ajaxurl, data, function(response){
$('.race-posts').append(response);
page++;
});
});
});
そして、これはload_more_ajax.php
です
<?php
function load_posts_by_ajax_callback(){
echo ("hello");
}
これはadd_actionです
add_action('wp_ajax_rnm_load_more_ajax', 'load_posts_by_ajax_callback');
add_action('wp_ajax_nopriv_rnm_load_more_ajax', 'load_posts_by_ajax_callback');
add_action('wp_enqueue_scripts', 'rnm_enqueue_fn');
function rnm_enqueue_fn(){
wp_register_script('rnm_load_more', get_template_directory_uri() .'/js/load_more_ajax.js', array(), false, true);
wp_enqueue_script('rnm_load_more');
}
'admin-ajax.php'のURLに問題があると思います。
しかし、私は解決策を見つけることができません。
この行の後にローカライズスクリプト"right"に値を渡す必要があります。
wp_enqueue_script('rnm_load_more');
wp_localize_script
を使用して、管理者URLをスクリプトに渡します。
$localization = array(
'ajax_url' => admin_url('admin-ajax.php'),
);
wp_localize_script( 'rnm_load_more', 'jjang', $localization );
これで、スクリプトでajax_url
を使用できます。
var ajaxurl = rnm_load_more.ajax_url;
この方法を使用して残りのデータを送信できます。
設定を変更しない限り、.jsファイルでPHPコードを使用することはできません。行ったとしても、それらのURLを取得するにはWPをロードする必要があります。今起こっていることは、あなたがPHPコードを持っていて、その結果ではないということです。
wp_localize_script を使用してWPからデータを設定し、それを静的JavaScriptファイルにアクセスできるようにすることをお勧めします。