[英]Ajax Post Filter with WP_Query only fires once with Category
我有一篇模仿本文后面的ajax post過濾器。 我主要按照需要工作,但我希望能夠按類別過濾講座(它實際上是一個子類別,但我不知道這是否有所不同)。
我有揚聲器和最新講座的過濾器,這些工作正常,但是當我嘗試運行系列過濾器(帶有elseif的部分(isset($ _POST ['series_name'])))時,我得不到任何響應。 如果首先嘗試運行系列過濾器,它將觸發一次但不會響應。 如果我先嘗試運行任何其他過濾器,它們將正常工作,但系列過濾器根本不會啟動。 我認為我的問題是我在設置$ _POST ['series_name']時如何處理WP_Query的$ args。
任何指針都將非常感謝,謝謝!
這是我的PHP:
function lectures_filter_function(){
$i = 1;
$args = array(
'post_type' => 'lectures',
'orderby' => 'meta_value',
'meta_key' => 'lecture_date',
'order' => 'DESC'
);
if( isset( $_POST['speaker'] ) )
{
$args['meta_query'][] = array(
'key' => 'speaker',
'value' => $_POST['speaker'],
);
}
elseif( isset( $_POST['series_name'] ) )
{
//*This is how I wanted to code it but it didn't work at all*
// $args['tax_query'] = array(
// array(
// 'taxonomy' => 'category',
// 'value' => 'category_name',
// 'terms' => $_POST['series_name']
// )
// );
//This is how I at least got it to fire once per screen load.
$args = array(
'category_name' => $_POST['series_name'],
'post_type' => 'lectures',
'orderby' => 'meta_value',
'meta_key' => 'lecture_date',
'order' => 'DESC'
);
}
$the_query = new WP_Query( $args );
$postlist = $the_query->post_count;
// The Query
// The Loop
if ( $the_query->have_posts() ) {
while ( $the_query->have_posts() ) {
$the_query->the_post();
// print_r($the_query);
if($i % 2 == 1){
echo '<div class="row">';
}
?>
<div class="large-6 columns lecture-tile">
<div class="lecture-overlay-container">
<a href="<?php the_permalink();?>">
<div class="lecture-tile-overlay"></div>
<?php the_post_thumbnail('full');?>
<div class="lecture-tile-info">
<h3><?php the_title();?></h3>
<?php
$current_id = get_the_id();
$lecture_type = get_post_meta($current_id, 'lecture_type', true);
if($lecture_type == "Single"){
$lecture_descriptor = "lecture";
}elseif ($lecture_type == 'Series') {
$series_name = get_post_meta($current_id, 'series_name', true);
$lecture_descriptor = $series_name;
}elseif ($lecture_type == 'Event') {
$event_name = get_post_meta($current_id, 'event_name', true);
$lecture_descriptor = $event_name;
}
?>
<p><?php echo $lecture_descriptor; ?></p>
</div>
</a>
</div>
</div>
<?php
if($i % 2 == 0 || $i == $num_posts){
echo '</div>';
}
$i++;
}
/* Restore original Post Data */
wp_reset_postdata();
} else {
// no posts found
echo "No matching lectures found...";
}
die();
}
add_action('wp_ajax_myfilter', 'lectures_filter_function');
add_action('wp_ajax_nopriv_myfilter', 'lectures_filter_function');
嘗試這個
$args = array(
'post_type' => 'post',
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'movie_genre',
'field' => 'slug',
'terms' => array( 'action', 'comedy' ),
),
array(
'taxonomy' => 'actor',
'field' => 'term_id',
'terms' => array( 103, 115, 206 ),
'operator' => 'NOT IN',
),
),
);
$query = new WP_Query( $args );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.