Wordpress排序自定义帖子类型

时间:2013-02-09 04:21:33

标签: php wordpress

我有一个自定义的帖子类型,它显示我的所有内容都是颠倒的,这意味着第一个entrie最后显示在我的实际首页上 - 有没有办法更改排序顺序?

我的代码如下:

        <?php global $post; ?>

        <ul class="menu-items">
            <?php
            $menuloop = new WP_Query(array(
                'posts_per_page' => -1,
                'post_type'      => 'menu',
                'tax_query'      => array(
                    // Note: tax_query expects an array of arrays!
                    array(
                        'taxonomy' => 'menu_type', // my guess
                        'field'    => 'slug',
                        'terms'    => $menuname_category
                    )
                ),
            ));

            ?>
            <?php if ( have_posts() ) : while ( $menuloop->have_posts() ) : $menuloop->the_post(); ?>
            <li>
                    <div class="grid2column"><?php the_title(); ?></div>
                    <div class="grid2column lastcolumn"><?php if(get_post_meta($post->ID, 'menuoption_menu_pricing', true)): ?><?php echo get_post_meta($post->ID, 'menuoption_menu_pricing', true) ?><?php endif; ?></div>
                    <div class="clearfix"></div>
                    <div class="item-description-menu"><?php echo get_the_excerpt(); ?></div>
            </li>
            <?php endwhile; ?>
            <?php endif; ?>
        </ul>

1 个答案:

答案 0 :(得分:1)

我猜您在问题中给出的代码中存在错误。 posts_per_page => -1

为什么会-1?它必须是一个> 0的数字才能显示。

对于排序,您需要将这两个参数添加到数组

array ( 'orderby' => 'date', 'order' => 'DESC'

基本上,您可以将DESC更改为ASC以反转订单。

最终数组

$menuloop = new WP_Query(array(
                'posts_per_page' => 10,
                'post_type'      => 'menu',
                'orderby'        => 'date', // new arg
                'order'          => 'DESC', // new arg
                'tax_query'      => array(
                    // Note: tax_query expects an array of arrays!
                    array(
                        'taxonomy' => 'menu_type', // my guess
                        'field'    => 'slug',
                        'terms'    => $menuname_category
                    )
                ),
            ));