1) 名为“Buying\\u Locations”的自定义帖子类型
2) 每个帖子有三个元值:State、City、Store Name
QUESTION: 如何显示这些帖子的列表,按字母顺序依次为州、市和商店名称?例如
STATE 1
<城市1
门店名称城市2
门店名称城市3
商店名称
STATE 2
<城市1
门店名称城市2
商店名称
STATE 3
<城市1
门店名称城市2
门店名称城市3
商店名称我进一步了解了这一点:
$mypost = array(
\'post_type\' => \'buy_locations\',
\'posts_per_page\' => -1,
\'meta_key\' => \'store_city\',
\'orderby\' => \'meta_value title\',
\'order\' => \'ASC\'
);
$loop = new WP_Query( $mypost );
只需要弄清楚如何先按州排序,然后按城市排序,然后按头衔排序。
不确定如何添加额外的“meta\\u key”值。
如何添加第三个排序请求?
$mypost = array(
\'post_type\' => \'buy_locations\',
\'posts_per_page\' => -1,
\'meta_key1\' => \'store_state\',
\'meta_key2\' => \'store_city\',
\'orderby\' => \'meta_value1 meta_value2 title\',
\'order\' => \'ASC\'
);
SO网友:Mark Rapp
由于我找不到获取自定义帖子标题并通过meta\\u键将其添加到排序/排序中的方法,我编辑了我的自定义帖子类型,以包含一个隐藏字段,该字段可以获取帖子标题,并在用户添加新的自定义帖子时将其设置为自定义元值。因此,在我的自定义帖子类型插件中,我有:
<input type="hidden" name="buy_location_name" value="<?php echo get_the_title($buy_location->ID); ?>" />
if ( isset( $_POST[\'buy_location_name\'] ) && $_POST[\'buy_location_name\'] != \'\' )
{ update_post_meta( $buy_location_id, \'location_name\', get_the_title($buy_location_id) ); }
然后,在按州、市和最终商店名称排序的结果发布的前端页面上,我使用以下URL中的示例代码:
http://wordpress.mcdspot.com/2012/10/24/sort-posts-on-multiple-custom-fields/ 我的代码是这样开始的。。。
$meta_keys = array(\'store_state\',\'store_city\',\'location_name\');
$args = array(
\'post_type\' => \'buy_locations\',
\'meta_key\' => $meta_keys[0],
\'orderby\' => \'meta_value\',
\'posts_per_page\' => -1);
$my_query = new WP_Query($args);
之后,以。。。
usort($my_query->posts, \'sort_3_keys\');
while ( $my_query->have_posts() ) : $my_query->the_post();
$id = $post->ID;
$storestate = $id_array[$id][$meta_keys[0]];
$storecity = $id_array[$id][$meta_keys[1]];
$storename = $id_array[$id][$meta_keys[2]];
echo "$storestate | $storecity | $storename <br />";
endwhile;
总之,开发此代码的cat(
http://wordpress.mcdspot.com/2012/10/24/sort-posts-on-multiple-custom-fields/), 是一个糟糕的穆塔,我很感谢他的工作和他分享。这帮助我实现了我所需要的结果。干杯