Php 如何在Wordpress上正确调用ajax url?
我有这个剧本:Php 如何在Wordpress上正确调用ajax url?,php,jquery,wordpress,Php,Jquery,Wordpress,我有这个剧本: <script> (function($){ load_data(); function load_data(query) { jQuery.ajax({ url:"fetch.php", method:"post", data:{query:query}, success:function(d
<script>
(function($){
load_data();
function load_data(query)
{
jQuery.ajax({
url:"fetch.php",
method:"post",
data:{query:query},
success:function(data)
{
$('#result').html(data);
}
});
}
$('#search_text').keyup(function(){
var search = $(this).val();
if(search != '')
{
load_data(search);
}
else
{
load_data();
}
});
})(jQuery);
</script>
(函数($){
加载_数据();
函数加载\u数据(查询)
{
jQuery.ajax({
url:“fetch.php”,
方法:“张贴”,
数据:{query:query},
成功:功能(数据)
{
$('#result').html(数据);
}
});
}
$(“#搜索_文本”).keyup(函数(){
var search=$(this.val();
如果(搜索!='')
{
加载_数据(搜索);
}
其他的
{
加载_数据();
}
});
})(jQuery);
在一个php文件上,但我经常收到一个错误,因为Wordpress无法识别ajax url(fetch.php),它试图在我的域中生成一个新的url
我如何才能正确地完成它?您需要使用
wp\u ajax
或wp\u ajax\u nopriv
动作挂钩来使用WordPress ajax。检查下面的代码
调用您需要使用的wp\u ajax
或wp\u ajax\u nopriv
动作挂钩
WPadmin\uURL('admin-ajax.php')
这将返回WordPers的ajax url
并且,还要在jQuery.ajaxdata
params中传递action
检查下面的代码。代码放入活动的theme functions.php文件中
function call_ajax(){ ?>
<script>
(function($){
load_data();
$('#search_text').keyup(function(){
var search = $(this).val();
if(search != ''){
load_data(search);
}else{
load_data();
}
});
function load_data( query ){
jQuery.ajax({
url:"<?php echo admin_url('admin-ajax.php'); ?>",
method:"post",
data:{acion:'your_action_name',query:query},
success:function( data ) {
$('#result').html( data );
}
});
}
})(jQuery);
</script>
<?php }
add_action( 'wp_footer', 'call_ajax', 10, 1 );
add_action( 'wp_ajax_your_action_name', 'your_action_name' );
add_action( 'wp_ajax_nopriv_your_action_name', 'your_action_name' );
function your_action_name(){
echo "ajax call";
echo $_POST['query'];
die;
}
函数调用\u ajax(){?>
(函数($){
加载_数据();
$(“#搜索_文本”).keyup(函数(){
var search=$(this.val();
如果(搜索!=''){
加载_数据(搜索);
}否则{
加载_数据();
}
});
函数加载\u数据(查询){
jQuery.ajax({
url:“”,
方法:“张贴”,
数据:{acion:'your_action_name',query:query},
成功:功能(数据){
$('#result').html(数据);
}
});
}
})(jQuery);
我还强烈建议将JS移动到一个单独的文件中,并使用本地化功能,除非您有令人信服的理由不这样做