按自定义字段排序自定义帖子类型


Sort Custom Post Type by Custom Field

如何在Wordpress中根据自定义字段对自定义帖子类型进行排序?我试图找出一种方法来响应一个名为"状态"按字母顺序的自定义字段,并将称为员工的自定义帖子类型链接放在他们各自的尊重状态下。

所以它看起来像这样:

阿拉巴马州

  • Appleseed, Johnny
  • 室,皮特
佛罗里达

    山姆,米勒
  • 鲜明,艾米

    我知道如何编写自定义帖子类型的基本循环,但我不确定如何在属于该帖子类型的自定义字段下按字母顺序排序。

    <?php $query = new WP_query ( array( 'post_type'=> 'employees', 'meta_key'=> 'state', 
     'orderby'=> 'meta_value', 'order' => 'DESC'));
       while ( $query -> have_posts() ) : $query -> the_post(); ?>
    <?php echo get_post_meta($post->ID, 'state', true); ?>
     <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
    <?php
    endwhile;   
    wp_reset_query();  ?>
    

你可以这样做:

<?php $query = new WP_query ( array( 'post_type'=> 'employees', 'meta_key'=> 'state', 'orderby'=> 'meta_value', 'order' => 'DESC'));
  while ( $query -> have_posts() ) : $query -> the_post(); ?>
    <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
  <?php
endwhile;   
wp_reset_query();  ?>

终于得到了这个链接:http://pastebin.com/b4WGrMhD

<?php $employeesQuery = new WP_Query(array('post_type' => 'employees', 'meta_key' => 'state', 'orderby' => 'meta_value', 'order' => 'ASC', 'posts_per_page' => '-1')); ?>
  <?php $prevltr = ""; ?>
    <?php if(have_posts()) { while ( $employeesQuery->have_posts() ) { $employeesQuery->the_post(); ?>
            <?php $state = get_post_meta($post->ID, 'state', true); ?>
            <?php $curltr = $state; ?>
            <?php if($curltr != $prevltr) : ?>
                <a name="section-<?php echo $curltr ?>"></a><br class="clear" /><h4><?php echo $curltr; $prevltr = $curltr; ?></h4>
            <?php endif; ?>
            <article class="employee-entry" id="entry-<?php the_title_attribute(); ?>">
                <div><strong><a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></strong></div>
                <div><?php $terms = get_the_terms( $post->ID , 'titles' ); foreach( $terms as $term ) { print $term->name; unset($term); } ?></div>
            </article>
<?php }} ?>