WordPress数据库按帖子类型自定义顺序

时间:2014-09-24 06:37:52

标签: wordpress

我有自定义的帖子类型叫做要求。我想在网站的前端显示需求列表。

这是我的需求列表的模板文件代码:

<div id="listing_loader">Loading...</div>
            <div id="listing_ajax_container"> 



            <?php
            wp_reset_query();
            $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
            if(is_front_page()){
                 $paged = (get_query_var('page')) ? get_query_var('page') : 1;
            }

            $args = array(
                'post_type'         => 'requirement',
                'post_status'       => 'publish',
                'paged'             => $paged,
                'posts_per_page'    => $prop_no,

                'orderby'           => 'meta_value',
                'order'             => 'DESC',


            );
       //  print_r($args);
            add_filter( 'posts_orderby', 'my_order' ); 
            $prop_selection = new WP_Query($args);
            remove_filter( 'posts_orderby', 'my_order' ); 
            $counter = 0;

            while ($prop_selection->have_posts()): $prop_selection->the_post(); 
                include(locate_template('req-listing.php'));
            endwhile;
            wp_reset_query();               
            ?>
            </div> 

我收到WordPress database error: [Unknown column 'wp_postmeta.meta_value' in 'order clause']错误。

那我该怎么解决呢?

1 个答案:

答案 0 :(得分:0)

使用自定义WP_Query并且您想按自定义字段meta_value订购结果时,您应该注意查询中还必须存在meta_key=keyname

例如:

$query = new WP_Query( array ( 'post_type' => 'requirement', 'orderby' => 'meta_value_num', 'meta_key' => 'price' ) );

另请注意,排序将按字母顺序排列,对于字符串(即单词)很好,但对于数字可能是意外的(例如1,3,34,4,56,6等,而不是1,3,4你自然会想到的,6,34,56)。使用meta_value_num代替数值。

有关详细信息,请参阅here