高级自定义字段按元键值排序
Advanced Custom Fields Order By Meta Key value
我有一个简单的 Wordpress 查询,其中列出了我的自定义 post 类型结果。
目前,他们按 post 创建日期的顺序列出。
我需要它们按照我命名的自定义字段的顺序列出 'release_year' 从最近到最旧。
我无法将第二个查询合并到我的结果中。
如何确保所有 post 都按 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 ): ?>
您需要按 release_year
排序,但是您将 release_category
指定为元键,因此它无法知道您想要使用另一个键。
您面临的主要问题是您不能有两个 meta_key
参数。相反,您需要使用 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',
),
),
));
元查询用于设置发布类别,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
我有一个简单的 Wordpress 查询,其中列出了我的自定义 post 类型结果。
目前,他们按 post 创建日期的顺序列出。
我需要它们按照我命名的自定义字段的顺序列出 'release_year' 从最近到最旧。
我无法将第二个查询合并到我的结果中。
如何确保所有 post 都按 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 ): ?>
您需要按 release_year
排序,但是您将 release_category
指定为元键,因此它无法知道您想要使用另一个键。
您面临的主要问题是您不能有两个 meta_key
参数。相反,您需要使用 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',
),
),
));
元查询用于设置发布类别,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