好的,这就是我想要做的:
我有一个名为drinks-menu 的自定义帖子类型、一个名为drinks-menu-categories 的分类法和一个名为template-drinks-menu.php 的页面模板。
分类法有一堆层次分明的术语——葡萄酒,有白色和红色的子项;啤酒,儿童比尔森啤酒,世涛啤酒等......
我想使用一个循环来显示这些术语中的所有帖子,其顺序与它们在管理员中的排序顺序相同。这是我到目前为止的代码:
<?php
$post_type = 'drinks-menu';
// Get all the taxonomies for this post type
$taxonomies = get_object_taxonomies( (object) array('post_type' => $post_type ) );
foreach( $taxonomies as $taxonomy ) :
// Gets every "category" (term) in this taxonomy to get the respective posts
$terms = get_terms( $taxonomy );
foreach( $terms as $term ) :
echo '<h1>'.$term->name.'</h1>';
if ( $term->description !== '' ) {
echo '<div class="page_summary">'. $term->description .'</div>';
}
echo '<br>';
$posts = new WP_Query( "taxonomy=$taxonomy&term=$term->slug&posts_per_page=-1&orderby=id&order=DESC" );
if( $posts->have_posts() ): while( $posts->have_posts() ) : $posts->the_post();
?>
<a href="<?php the_permalink(); ?> "><?php the_title(); ?></a>
<?php
if( get_field( "price" ) ): ?>
<?php echo '<span">'; the_field( "price" ); echo ' | '; the_field( "abv" ); echo '</span>';?>
<?php endif;
echo '<em>'; the_excerpt(); echo '</em><br><br>';
endwhile; endif;
endforeach;
endforeach;
?>
这可以很好地将条款中的所有帖子带到页面上,但不是按顺序排列。你可以看到我试过taxonomy=$taxonomy&term=$term-slug&posts_per_page=-1&orderby=id&order=DESC
但它不起作用,一切都按字母顺序显示。
任何可以为我指明正确方向的 Wordpress 大师?我希望我已经清楚了这个问题。谢谢 :-)