我正在网站上,并且已经创建了自定义过滤器方法。 每个帖子都有2个自定义ACF字段。 我已经设置了args以及查询和查询功能,但我只登录了。
如果我尝试以未注册用户的身份显示帖子...则什么也没显示。
问题::我正在尝试使用wp_query和meta_query显示与AND运算符和动态添加的值之间相关的帖子。
问题,为什么我只有在登录时才能使用相同的语法显示帖子,而在退出时却不能显示。
其他信息:我正在使用ACF插件wp_ajax。
代码:
function filtering_program(){
$luna = $_POST['data'][0];
$ziua = $_POST['data'][1];
$args = array(
'post_type' => 'program',
'orderby' => 'date',
'order' => 'DESC',
'posts_per_page' => -1,
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'ziua',
'value' => $ziua,
'compare' => 'LIKE'
),
array(
'key' => 'luna_anului',
'value' => $luna_number,
'compare' => 'LIKE'
)
)
);
$posts = new WP_Query( $args );
if ( $posts -> have_posts() ) {
}
wp_die();
}
add_action('wp_ajax_program_filter', 'filtering_program');
add_action('wp_ajax_nopriv_program_filter', 'filtering_program');
功能PHP到此结束
从现在开始它的js句柄和ajax请求
$('.dd-program').click(function(){
$this = $(this);
if($(this).hasClass('options-month')){
$datas[0] = $(this).parent().find('.selected-program-filter').html();
}else{
$datas[1] = $(this).parent().find('.selected-program-filter').html();
}
var payload = {
'action': 'program_filter',
'data': $datas
};
$.ajax({
url: loadmore_params.ajaxurl,
data: payload,
type: 'POST',
beforeSend : function ( xhr ) {
$('.posts-data .container .flex-grid').addClass('isLoading');
$('.posts-data .container .flex-grid').html('<div class="col"></div><div class="col"></div><div class="col"></div><div class="col"></div><div id="loading"></div>');
$('.posts-load-more').css('display', 'none');
},
success : function( data ){
console.log(data);
if( data ) {
if($this.data("lang") == "RO"){
$('.posts-data .container .flex-grid').html(data.replaceArray([">Locatie<", "No posts!"], [">Locație<", "<h3>Nu exista evenimente!</h3>"]));
}else{
$('.posts-data .container .flex-grid').html(data.replaceArray([">Locatie<", "No posts!"], [">Location<", "<h3>No events!</h3>"]));
}
}
}
});
});
答案 0 :(得分:0)
在您的js代码中,尝试将所有$
替换为jQuery
。
例如:
$('.dd-program').click(function(){
替换为
jQuery('.dd-program').click(function(){
其余的代码也一样。