我在本地主机上制作主页。
我需要wp_query
使用Ajax。
但有一些错误。我不知道为什么。你能帮帮我吗?
---->这是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\\u操作
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”的url中存在一些问题。php\'
但我找不到任何解决办法。
最合适的回答,由SO网友:Johansson 整理而成
您需要将这些值传递给本地化脚本,在这一行之后是“right”:
wp_enqueue_script(\'rnm_load_more\');
我将使用
wp_localize_script
:
$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;
您可以使用此方法发送其余数据。