malikovdmitry
@malikovdmitry
Фотограф, начинающий веб

Wordpress. Как фильтровать посты по категориям, ajax?

Добрый день!
Столкнулся с проблемой, которую не могу решить. Надо сделать фильтрацию постов по категориям на ajax. Нашел как реализовали ребята, не могу это адаптировать под worpress (ссылка). Как и в этом примере у меня плитками расположены миниатюры постов, которые являются ссылками на сами посты.

9513cbc3efd9492a88c166bc44ebc305.png
Миниатюры выводятся таким циклом:
<?php
$query = new WP_Query( array(
'post_type' => 'post',
'posts_per_page' => -1
) );
?>

<?php
while ($query->have_posts()) :
$query->the_post();
?>

<-a href="<?php the_permalink() ?>" rel="bookmark"><?php the_post_thumbnail('thumbnail'); ?><-/a>
<?php endwhile; ?>

Если кто-то сталкивался с подобным, пожалуйста, помогите или направьте на правильный путь.
  • Вопрос задан
  • 5763 просмотра
Решения вопроса 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Сейчас вы циклом выводите все посты (posts_per_page равен -1). То есть, все посты у вас уже есть, аякс по большому счету не нужен - достаточно просто прятать ненужные элементы. Чтобы определить какой пост в какой рубрике, необходимо в вывод поста добавить дополнительный атрибут, через который вы ее будете отлавливать. Например
<?php $category = get_the_category(); // получить  ?>
<a href="<?php the_permalink() ?>" rel="bookmark" data-category="<?php echo $category[0]->cat_name; ?>">
    <?php the_post_thumbnail('thumbnail'); ?>
</a>

Далее уже в javascript при клике на ссылку в фильтре берете ее имя из $(this), проходитесь с помощью each() по всем постам, скрываете те, у которых data('category') не равен имени категории.

Еще раз, зачем аякс?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
malikovdmitry
@malikovdmitry Автор вопроса
Фотограф, начинающий веб
Игорь Воротнёв: Понял) вот ссылки:
<li class="categories">Рубрики
	<ul>
		<li class='cat-item-all'><a href='http://malikovblog.com.ua/'>all</a></li>	
		<li class="cat-item cat-item-7">
        <a href="http://malikovblog.com.ua/category/portrait/">portrait</a>
    </li>
		<li class="cat-item cat-item-5">
        <a href="http://malikovblog.com.ua/category/wedding/">wedding</a>
    </li>
	</ul>
</li>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы