我有一个CPT('地方')类别存档模板,我希望以alpha顺序显示所有相关帖子。以下主要是工作 - 我得到类别描述和照片(ACF数据)和与特定类别相关的帖子列表,但排序不起作用。
PHP:
$context = Timber::get_context();
$term = new TimberTerm();
$context['current_cat'] = $term;
$templates = array( 'category.twig', 'archive.twig', 'index.twig' );
Timber::render( $templates, $context );
嫩枝:
<section class="places ">
<div class="places-list">
<h3>Places in: {{current_cat.name}}</h3>
<div class="places-container">
<ul>
{% for post in current_cat.posts(-1, '')|sort %}
<li id="wpgmza_marker_{{post.get_field('map_marker_id')}}" mid="{{post.get_field('map_marker_id')}}" mapid="1" class="wpgmaps_blist_row">
<div>{{post.title}}</div>
</li>
{% endfor %}
</ul>
谢谢!
答案 0 :(得分:0)
请尝试这样做(替换上面代码的前五行):
c
c -0.8356286 2410047 -0.6264538 0742332 0. 83643324222082
-0.835628612410047 1 1 0 0 0 0
-0.626453810742332 0 0 1 1 0 0
0.183643324222082 0 0 0 0 1 1
答案 1 :(得分:0)
关于Twig's sort filter和您的情况,我会怀疑两件事:1.由于顺序未定义,因此默认为ASC,也许您的查询结果已经是这种方式。 2.您没有明确说明排序的依据,并且我可以想象后查询不是一个简单的列表。
或者:对查询进行排序
尽管Twig的排序过滤器很方便,并且在某些情况下可能会起作用,但最好在初始PHP查询中定义排序以及其他查询属性。这样可以完全控制,并可以利用通过GET或POST在页面之间传递的变量。
以下为我工作:
archive.php
$templates = array( 'pages/archive.twig', 'pages/index.twig' );
if ( ! isset( $paged ) || ! $paged ) {
$paged = 1;
}
$context = Timber::context();
$args = array(
'posts_per_page' => 10,
'paged' => $paged,
'post_type' => get_post_type(),
// Ordering option 1: based on regular field
// 'orderby' => 'desc',
// 'order' => title,
// Ordering option 2: based on ACF field
'meta_key' => 'my_custom_field',
'orderby' => array('meta_value' => 'DESC'),
);
$context['title'] = 'Archive';
if ( is_tag() ) {
$context['title'] = single_tag_title( '', false );
} elseif ( is_category() ) {
$context['title'] = single_cat_title( '', false );
array_unshift( $templates, 'pages/archive-' . get_query_var( 'cat' ) . '.twig' );
} elseif ( is_post_type_archive() ) {
$context['title'] = post_type_archive_title('', false );
array_unshift( $templates, 'pages/archive-' . get_post_type() . '.twig' );
}
$context['posts'] = new \Timber\PostQuery($args);
Timber::render( $templates, $context );
archive-book.twig(例如)
{% extends 'layouts/base.twig' %}
{% block content %}
{% include 'partials/page-controls.twig' %}
<div>
{% for post in posts %}
<div>
{% include 'partials/post-tease-card.twig' %}
</div>
{% endfor %}
</div>
{% include 'partials/pagination.twig' %}
{% endblock %}