Php WP_使用每个页面的帖子查询问题-1
这有点奇怪,我需要一些关于WP_查询()问题的帮助或解释 当您到达特定页面时,“我的代码”通过元查询获取所有帖子类型的项目:Php WP_使用每个页面的帖子查询问题-1,php,ajax,Php,Ajax,这有点奇怪,我需要一些关于WP_查询()问题的帮助或解释 当您到达特定页面时,“我的代码”通过元查询获取所有帖子类型的项目: echo 'apple'; $args = array( 'post_type' => "family", 'meta_query' => array( array('key' => '_family') ), 'posts_per_pag
echo 'apple';
$args = array(
'post_type' => "family",
'meta_query' => array(
array('key' => '_family')
),
'posts_per_page'=>'9000' // number post in this post type: 18 000 entries
);
$my_query = new WP_Query($args);
echo 'banana';
如果在加载页面时使用。。可以。。我看到我的“香蕉”回声
如果我在“ajax”中这样做,则返回值为“null”,我没有看到我的“香蕉”,但看到了“苹果”
我已经试过使用posts\u per\u page=>'3',它在ajax中运行良好
测试:
此外,我们在php.ini上有4Go用于内存限制
如果我在“安全模式开启”下运行,一切正常
有什么想法吗
谢谢大家!
编辑
$('body.woocommerce-account #famille-list a').on('click',function (e){
if($(this).data('action') == "edit"){
e.preventDefault();
showProgress();
jQuery.ajax({
type: "post",
dataType: "json",
async: true,
url: scriptParams.ajaxurl,
data: {
action: "edit_family",
id: $(this).data('id')
},
success: function(data) {
if(data != null && data.success == 1){
if($('form.myfamily').css('display')=='none'){
$('form.myfamily').prev().find('h3').click();
}
$('input[name=save_children]').val('Modifier');
$('input[name=id]').val(data.member.id);
hideProgress();
}
}
});
}
});
对于AJAX,请求应该只有一个
echo
语句,该语句使用json\u encode
传递,之后还有一个die()
语句。如果这不能解决您的bug,那么这至少是一个好的实践,因为它清楚地表明了您的HTTP响应是什么
header( "Content-Type: application/json" );
echo json_encode('apple');
die();
// Code should not reach your banana statement
因此,对于您的代码,您应该执行以下操作:
$response = array();
$response[] = 'apple';
$args = array(
'post_type' => "family",
'meta_query' => array(
array('key' => '_family')
),
'posts_per_page'=>'9000' // number post in this post type: 18 000 entries
);
$my_query = new WP_Query($args);
$response[] = 'banana';
header( "Content-Type: application/json" );
// will return an array with the value ['apple', 'bannana'];
echo json_encode($response);
die();
另外,您是否直接调用PHP文件?那是WordPress的坏习惯。有一种既定的方法可以处理AJAX请求:(它说是用于插件的,但主题也可以使用它)。一开始有点罗嗦,很难理解,但它更干净、更灵活 安全模式是建议的运行方式。如果它能工作,你为什么要关掉它。。不知道。。我一直认为最好关闭这个功能。你能发布你的JavaScript代码吗?那会很有帮助的。我认为破坏你代码的是
echo“apple”代码>香蕉前的语句。AJAX响应将只返回第一条echo语句,仅此而已。它将忽略你的回声“banana”代码>语句。@JorgeSilva:我已经用我的JS代码进行了编辑。回音只用于跟踪代码的死亡位置。我也使用wp_ajax和wp_ajax_nopriv。您的ajax请求将只返回您的第一条echo
语句。所以我并不奇怪你只得到“苹果”作为你的AJAX回应。它正常工作了!您可以创建一个变量数组作为响应返回,也可以将echo
banana作为响应返回。
$response = array();
$response[] = 'apple';
$args = array(
'post_type' => "family",
'meta_query' => array(
array('key' => '_family')
),
'posts_per_page'=>'9000' // number post in this post type: 18 000 entries
);
$my_query = new WP_Query($args);
$response[] = 'banana';
header( "Content-Type: application/json" );
// will return an array with the value ['apple', 'bannana'];
echo json_encode($response);
die();