При клике по кнопке на сайте должна происходить подгрузка дополнительного контента. AJAX запрос ниже:
$('.articles-tags-list-item, .articles-tags-button-all button').click(function(e) {
e.preventDefault();
var tagList = []
obj = {};
$('.articles-tags-list-item__active').each(function() {
tagList.push($(this).data('tag-slug'));
});
obj.tagList = tagList;
jsonObj = JSON.stringify(obj);
var data = {
'action': 'download_tag_article',
'jsonObj': jsonObj
};
$('#articles-list').animate({opacity: 0.1}, 700);
$.post(arrAjax.url, data, function(response) {
$('.articles-item').remove();
$('#articles-list').append(response.articlesList).animate({opacity: 1}, 700)
});
});
На сервере все это обрабатываю так
function download_tag_article_callback() {
$json_obj = stripslashes($_POST['jsonObj']);
$json_obj = json_decode($json_obj);
$tag_list = $json_obj->tagList;
$posts = get_posts(array(
'numberposts' => -1,
'post_type' => 'article',
'tax_query' => array(
array(
'taxonomy' => 'tagarticle',
'field' => 'slug',
'terms' => $tag_list
)
),
));
$json_obj->articlesList = '';
$json_obj->endArticle = 0;
for ($i_article = 0; $i_article < 5; $i_article++) {
if( $i_article < count($posts) ) {
$post_a = $posts[$i_article];
$json_obj->articlesList .= html_add_article($post_a);
} else
$json_obj->endArticle = 1;
}
$json_obj = json_encode($json_obj);
echo $json_obj;
wp_die();
}
Функция html_add_article()
собирает сразу блок с разметкой и подстановкой нужных данных.
В ответе от сервера получаю блоки с разметкой и ниже объект js. Пример ниже.
<li class="articles-item" data-id-article="124">
<a href="http://site.com/article/marketingfeel/">
<div class="articles-item-img"><img width="250" height="170" src="http://site.com/wp-content/uploads/2017/12/440cdf03803_250x170.jpg" class="attachment-size_article_list size-size_article_list" alt="" /></div>
<div class="articles-item-content">
<div class="articles-item-content-title">Маркетинг в продажах: конверсии по ощущениям?</div>
<div class="articles-item-content-date">27 декабря 2017</div>
<div class="articles-item-content-description">Знаменитая друкеровская формула про правильный продукт, который продает себя сам.</div>
<ul class="articles-item-content-tags">
<li class="articles-item-content-tag">Маркетинг</li>
<li class="articles-item-content-tag">Отдел продаж</li>
</ul>
</div>
</a>
</li>
{"tagList":["marketing"],"endArticle":0,"articlesList":""}
Задумка была, что верстка будет в переменной articlesList.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Пытаюсь использовать библиотеку FreeType (v2) для 2Д отрисовки в OpenGL (v41) сцене на языке C++
Как создать это Memo в Embarcadero C + + Builder 102 (Проблема наверху rectangular FMX!)
Нужен в программе заголовочный файлcuda_data и cudpp_config