Javascript AJAX调用-无法识别wordpress函数/类
我使用Ajax调用获取响应,在响应文件中我使用了wordpress循环usng WP_Query()类。。。 但当我执行ajax时,它会返回致命错误: 致命错误:在第20行的C:\xampp\htdocs\business finder\WP content\themes\businessfinder\metabox\ajax-process.php中找不到类“WP\u Query” 以下是AJAX调用代码:Javascript AJAX调用-无法识别wordpress函数/类,javascript,jquery,ajax,wordpress,function,Javascript,Jquery,Ajax,Wordpress,Function,我使用Ajax调用获取响应,在响应文件中我使用了wordpress循环usng WP_Query()类。。。 但当我执行ajax时,它会返回致命错误: 致命错误:在第20行的C:\xampp\htdocs\business finder\WP content\themes\businessfinder\metabox\ajax-process.php中找不到类“WP\u Query” 以下是AJAX调用代码: var path = 'http://localhost/business-finde
var path = 'http://localhost/business-finder/wp-content/themes/businessfinder/metabox/ajax-process.php';
$.ajax({
type: "POST",
url: path,
data: { param:folio_data }
}).done(function( msg ) {
$( '#ajax_folio' ).html( msg );
//alert( "Data Saved: " + msg );
});
以下是响应文件代码:
<?php
print_r( $_POST['param'] );
if( !empty( $_POST['param'] ) ):
echo spyropress_get_attached_posts1( $_POST['param'], 'ait-grid-portfolio' );
echo '<br><br>';
endif;
function spyropress_get_attached_posts1( $post_id = '', $post_type = '' ){
//if( $post_id = '' || $post_type = '' ) return;
$counter = 0;
global $wp_query ;
$query = new WP_Query( array( 'post_type' => $post_type, 'post__in' => $post_id ) );
if( $query->have_posts() ):
$out .= '<table border = "1">';
while( $query->have_posts() ):
$query->the_post();
if( $counter == 6 ):
$out .= '<tr class = "post_list">';
else:
$counter++;
endif;
$out .= '<td>'.get_the_post_thumbnail(get_the_ID(), array(100,100)).'<br>'.get_the_title().'</td>';
if( $counter == 6 ):
$out .= '</tr>';
$counter = 0;
endif;
endwhile;
$out .= '</table>';
wp_reset_postdata();
else:
$out = 'No Posts Found....';
endif;
wp_reset_query();
return $out;
}
add_action( 'init', 'spyropress_get_attached_posts' );
?>
您编写了错误的ajax代码。您不能像这样使用ajax。见以下代码:
jQuery(document).ready(function($) {
var dataString = {
action: 'my_ajax',
param: folio_data
};
jQuery.ajax
({
type: "POST",
url: "<?php echo admin_url('admin-ajax.php'); ?>",
data: dataString,
cache: false,
success: function(msg)
{
$( '#ajax_folio' ).html( msg );
//alert( "Data Saved: " + msg );
}
});
});
function ajaxDataSubmit(){
global $wpdb;
$post_id = $_POST['param'];
$post_type='ait-grid-portfolio';
$counter = 0;
global $wp_query ;
$query = new WP_Query( array( 'post_type' => $post_type, 'post__in' => $post_id ) );
if( $query->have_posts() ):
$out .= '<table border = "1">';
while( $query->have_posts() ):
$query->the_post();
if( $counter == 6 ):
$out .= '<tr class = "post_list">';
else:
$counter++;
endif;
$out .= '<td>'.get_the_post_thumbnail(get_the_ID(), array(100,100)).'<br>'.get_the_title().'</td>';
if( $counter == 6 ):
$out .= '</tr>';
$counter = 0;
endif;
endwhile;
$out .= '</table>';
wp_reset_postdata();
else:
$out = 'No Posts Found....';
endif;
wp_reset_query();
die($out);
}
add_action('wp_ajax_my_ajax', 'ajaxDataSubmit');//Logged in users
add_action('wp_ajax_nopriv_my_ajax', 'ajaxDataSubmit'); // Not logged in uNOTE: mer
jQuery(文档).ready(函数($){
变量数据字符串={
行动:“我的阿贾克斯”,
参数:对开数据
};
jQuery.ajax
({
类型:“POST”,
url:“”,
数据:dataString,
cache:false,
成功:功能(msg)
{
$('#ajax_folio').html(msg);
//警报(“保存的数据:“+msg”);
}
});
});
函数ajaxDataSubmit(){
全球$wpdb;
$post_id=$_post['param'];
$post_type='ait-grid-portfolio';
$counter=0;
全局$wp_查询;
$query=新的WP_查询(数组('post_type'=>$post_type,'post_in'=>$post_id));
如果($query->have_posts()):
$out.='';
而($query->have_posts()):
$query->the_post();
如果($counter==6):
$out.='';
其他:
$counter++;
endif;
$out.='''.get_the_post_缩略图(get_ID(),array(100100))。
'。get_the_title()。';
如果($counter==6):
$out.='';
$counter=0;
endif;
结束时;
$out.='';
wp_reset_postdata();
其他:
$out='未找到帖子…';
endif;
wp_reset_query();
死亡($退出);
}
添加动作(“wp\u ajax\u my\u ajax”,“ajaxDataSubmit”)//登录用户
添加动作('wp_ajax_nopriv_my_ajax','ajaxDataSubmit');//未登录uNOTE:mer
你完全错了。请阅读以下内容: