我想出了一个解决方案,我想出了一点点。
我正在使用get_adjacent_posts函数返回循环中的上一篇文章
<div class="timeline">
<?php $args = array('post_type' => 'case', 'cases' => $term->slug, 'order' => 'DEC', 'orderby' => 'meta_value', 'meta_key' => 'wpcf-date'); $query = new WP_Query($args); while ($query->have_posts()) : $query->the_post(); ?>
<?php
$previous_post = get_adjacent_post(true, '', true, 'cases'); //Get The previous post
$prev_year = date("Y", get_post_meta($previous_post->ID, 'wpcf-date', true)); //Get the year of the previous post
$entry_year = date("Y", (types_render_field("date", array("raw"=>"true")))); //Get the year of the current post
if ($prev_year != $entry_year) {
?>
<strong class="entry-year"><?php echo $entry_year; ?></strong>
<?php } ?>
<div class="timeline-entry">
<span class="entry-date"><?php echo types_render_field("date", array("raw"=>"false")); ?></span>
<span class="entry-citation"><?php echo types_render_field("citation-court", array("raw"=>"false")); ?></span>
<strong class="entry-title"><?php the_title(); ?></strong>
<?php the_content(); ?>
</div>
<?php endwhile; wp_reset_postdata(); ?>
</div>
基本上我想要实现的是显示帖子的“时间轴”,并且每年在同一年的帖子中只显示一年(自定义字段)。我的解决方案是在get_adjacent_post函数不支持我在原始查询中应用的排序这一事实。我需要通过元键'wpcf-date'对get_adjacent_post函数进行排序。
我相信get_adjacent_posts可以过滤输出我想要的但我不知道怎么做。如果有人能帮助我,我将不胜感激!
答案 0 :(得分:0)
你可以使用
previous_posts_link('previous',$query->max_num_pages)
编辑: -
function get_previous_post_id($wp_query) {
if ($wp_query->current_post == $wp_query->post_count) return 0;
$previous_post = $wp_query->posts[$wp_query->current_post - 1];
return $previous_post ->ID;
}
在你的functions.php和
中使用它$previous_post_id=get_previous_post_id($query);
您需要以前的帖子ID。 $ query是您从Wp_query
生成的字符串P.S。最后一篇文章应返回0;