我使用自定义帖子类型和分类法将帖子组织成不同的系列,其中帖子的顺序很重要(旅行叙事)。
我的计划single-{custom-post-type}.php
显示序列中每个帖子的位置:
我目前使用以下标准WP\\U查询查找每个分类中的帖子总数:
$query = new WP_Query(array(
\'TAXONOMY\' => \'TAXONOMY TERM\',
\'posts_per_page\' => -1,
\'post_status\' => \'publish\'
));
echo $query->post_count;
然而,我一直不知道如何在这个系列中找到当前帖子的位置。
Post ?? / echo $query->post_count
我曾考虑使用WP\\u Query的日期参数(之前),但因为它只接受DD、MM、YYYY,如果一天中发布了多篇文章,那么它就不起作用了。
我可能走错了方向,所以我对如何解决这个问题的其他解释持开放态度。
提前感谢!
最合适的回答,由SO网友:gmazzap 整理而成
如果邮政订单反映了发布日期(请注意,发布日期还考虑了发布的小时、分钟和秒),那么使用只返回邮政ID的查询,然后array_search
要查找当前帖子id索引,请执行以下操作:
$query = new WP_Query( array(
\'TAXONOMY\' => \'TAXONOMY TERM\',
\'posts_per_page\' => -1,
\'post_status\' => \'publish\',
\'orderby\' => \'date\', // be sure posts are ordered by date
\'order\' => \'ASC\', // be sure order is ascending
\'fields\' => \'ids\' // get only post ids
));
global $post; // current post object
$i = array_search( $post->ID, $query->posts ) + 1; // add 1 because array are 0-based
echo "Post {$i} / {$query->post_count} in TAXONOMY TERM";