0

わかりました、これが私がやろうとしていることです:

私は、drinks-menu と呼ばれるカスタム投稿タイプ、drinks-menu-categories と呼ばれる分類法、および template-drinks-menu.php と呼ばれるページ テンプレートを持っています。

分類法には、階層的な用語がたくさんあります。Wine には子 White と Red があります。ビール、お子様連れ ピルスナー、スタウトなど…

1 つのループを使用して、これらの用語のすべての投稿を、管理者で並べ替えられているのと同じ順序で表示したいと考えています。これまでに得たコードは次のとおりです。

    <?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の達人はいますか? 私はこの問題について明確になったことを願っています。ありがとう :-)

4

1 に答える 1

0
  1. 「menu_order」によって管理ページで並べ替えられた投稿。
  2. query_posts (WP_Query コンストラクター) を使用して投稿を並べ替えたい場合は、変数 "orderby" の値を大文字で使用する必要があります -> "ID"。
于 2013-08-10T16:09:58.940 に答える