Я пытаюсь отобразить custom posts
на taxonomy id
через ajax, но во время вызова ajax отображаются повторяющиеся сообщения.
Следующий скрипт-скрипт находится в пользовательском шаблоне темы.
jQuery(document).ready(function(){
jQuery('.cate_link').click(function(){
var getLinkCat = jQuery(this).attr('cat_permalink');
var splitLink = getLinkCat.split('?');
var catName = splitLink[1];
var termId = jQuery(this).attr('term_id');
var data = {
action: 'LoadProductBasedOnTaxonomy',
catName:catName,
termId:termId
};
var ajaxurl = "<?php echo admin_url( 'admin-ajax.php' ); ?>";
jQuery.ajax({
method: 'post',
url:ajaxurl,
dataType:'html',
data: data,
beforeSend: function (response) {
jQuery("#loading").show();
},
complete: function (response) {
jQuery("#loading").hide();
},
success: function (response) {
// alert(response)
console.log(response)
if( response.error != 'undefined' && response.error ){
return true;
} else {
setTimeout(function() {
jQuery(".row").html(response)
jQuery('#successMessage').show('1000');
}, 3000);
}
},
});
return false;
});
});
</script>
И следующий скрипт в пользовательской теме functions.php
file
function LoadProductBasedOnTaxonomy(){
if(isset($_POST['catName']) && !empty($_POST['catName'])){
$getCatName = explode("=", $_POST['catName']);
$catName = $getCatName[1];
}
if(isset($_POST['termId']) && !empty($_POST['termId'])){
$termId = $_POST['termId'];
}
$args = array('post_type' => 'product',
'tax_query' => array(
array(
'taxonomy' => 'product_category',
'field' => 'id',
'terms' => $termId,
)
)
);
//$getProductsPost = get_posts($args);
$getProductsPost = new WP_Query( $args );
global $post;
$html .='';
if ( $getProductsPost->have_posts() ) {
while ( $getProductsPost->have_posts() ) : $getProductsPost->the_post();
//foreach ($getProductsPost as $key => $value) {
/*$image = wp_get_attachment_image_src( get_post_thumbnail_id( $value->ID ), 'thumbnail' );
$html .='<div class="col-lg-12 content"><div class="movie_img">';
$html .='<a class="thumbnail" href="#" data-image-id="1" data-toggle="modal" data-title="" data-image="" data-target="#image-gallery">';
$html .='<img with="200px" class="img-thumbnail" src="'.$image[0].'">';
$html .='</a></div></div>';*/
$html .='<h1>'.$post->ID.'</h1>';
echo $html;
//}
endwhile;
}
wp_reset_postdata();
wp_die();
}
add_action('wp_ajax_LoadProductBasedOnTaxonomy' ,'LoadProductBasedOnTaxonomy');
add_action('wp_ajax_nopriv_LoadProductBasedOnTaxonomy','LoadProductBasedOnTaxonomy');
Итак, проблема в том, что мы добавили следующие категории и добавили сообщения в категорию.
Ежедневная распродажа : 3 Вам может понравиться : 2 Последний : 5
Но во время вызова ajax при нажатии Daily Sale
отображаются сообщения 4 вместо 3, а при нажатии Latest
этопоказывает сообщения больше 10 вместо 5.
Я не знаю, почему это происходит, хотя, когда я печатаю общее количество сообщений, он показывает текущий результат, но проблема во время вызова ajax.