low*_*ase 2 php wordpress get posts advanced-custom-fields
我有一个简单的Wordpress查询,列出我的自定义帖子类型结果.
目前,他们按照创建帖子的日期顺序列出.
我需要它们按照我名为'release_year'的自定义字段的顺序列出从最近到最早.
我无法将第二个查询合并到我的结果中.
如何确保所有帖子按release_year排序?
非常感谢.
<?php
$posts = get_posts(array(
'post_type' => 'discography',
'posts_per_page' => -1,
'meta_key' => 'release_category',
'meta_value' => 'album',
'orderby' => 'meta_value',
'order' => 'ASC',
));
if( $posts ): ?>
Run Code Online (Sandbox Code Playgroud)
您需要按顺序排序,release_year但是您指定release_category为元键,因此无法知道您是否要使用其他键.
你面临的主要问题是你不能有两个meta_keyargs.相反,你需要利用这个meta_query论点.
$posts = get_posts(array(
'post_type' => 'discography',
'posts_per_page' => -1,
'meta_key' => 'release_year',
'orderby' => 'meta_value_num',
'order' => 'DESC',
'meta_query' => array(
array(
'key' => 'release_category',
'value' => 'album',
),
),
));
Run Code Online (Sandbox Code Playgroud)
元查询用于设置发布类别,并将meta_key值更改为您要按顺序排列的键.meta_value_num在处理数值时,我还设置了重要的顺序.最后,您需要使用降序.
进一步阅读:https://codex.wordpress.org/Class_Reference/WP_Meta_Query
https://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters