如何解决十月 CMS:无法使用砌体过滤器进行分页
我有一个简单的投资组合/博客文章显示页面。它具有两个类别:“照片”和“视频”。
for cycle
显示来自特定帖子的所有图像。由于照片太多,所以分页是为了不让整个页面过载。
所以问题出在过滤器上。如果我当前在根页面 /portfolio
上并设置过滤器类别 - 帖子被过滤,但是一旦我单击特定分页页面并应用类别过滤器 - 过滤器仅在该页面上起作用。换句话说,如果我单击页码 4
,则会加载 url: portfolio/4
。然后我应用一个过滤器,它过滤来自该特定页面的帖子 - portfolio/4
。虽然它应该从所有帖子中过滤。如何正确实现?
应用任何过滤器后重定向到根页面 portfolio
?或者也许有更优雅、更正确的 AJAX 解决方案来解决这个问题?
portfolio.html
title = "Portfolio"
url = "/portfolio/:page?"
layout = "default"
is_hidden = 0
[blogPosts]
pageNumber = "{{ :page }}"
postsPerPage = 10
nopostsMessage = "No posts found"
sortOrder = "published_at desc"
categoryPage = "about"
postPage = "blog-post"
[blogCategories]
slug = "{{ :slug }}"
displayEmpty = 0
categoryPage = "blog-category"
==
{% set posts = blogPosts.posts %}
<div class="portfolio-section">
<ul class="portfolio-filter controls text-center">
<li class="control" data-filter="all">All</li>
{% for category in categories %}
<li {% if category.slug == currentCategorySlug %} class="active control" {% endif %} data-filter=".{{ category.name }}">{{ category.name }}</li>
{% endfor %}
</ul>
<div class="row portfolio-gallery m-0">
{% for post in posts %}
{% for image in post.featured_images %}
{% for category in post.categories %}
<div class="mix col-xl-2 col-md-3 col-sm-4 col-6 p-0 {{ category.name }}">
<a href="{{ image.path }}" class="portfolio-item img-popup set-bg" data-setbg="{{ image.path }}"></a>
</div>
{% endfor %}
{% endfor %}
{% endfor %}
</div>
{% if posts.lastPage > 1 %}
<ul class="pagination">
{% if posts.currentPage > 1 %}
<li><a href="{{ page.baseFileName|page({ (pageParam): (posts.currentPage-1) }) }}">← Prev</a></li>
{% endif %}
{% for page in 1..posts.lastPage %}
<li class="{{ posts.currentPage == page ? 'active' : null }}">
<a href="{{ page.baseFileName|page({ (pageParam): page }) }}">{{ page }}</a>
</li>
{% endfor %}
{% if posts.lastPage > posts.currentPage %}
<li><a href="{{ page.baseFileName|page({ (pageParam): (posts.currentPage+1) }) }}">Next →</a></li>
{% endif %}
</ul>
{% endif %}
</div>
砖石
var masonryLayout = function () {
$('.portfolio-grid').masonry({
itemSelector: '.grid-item',columnWidth: '.grid-sizer',percentPosition: true
});
}
/*MixituP*/
masonryLayout();
if ($('.portfolio-gallery').length > 0) {
var containerEl = document.querySelector('.portfolio-gallery');
var mixer = mixitup(containerEl,{
callbacks: {
onMixEnd: function () {
masonryLayout();
}
}
});
}
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。