Php 按包含日期戳的自定义字段对循环的输出排序
我使用一个自定义字段来存储用户输入的日期的时间戳。我想显示按自定义日期排序的帖子,但它们拒绝按自定义字段排序 在此,我使用此自定义元框工具注册自定义字段- 然后我使用WP_Query使用以下参数循环浏览帖子:Php 按包含日期戳的自定义字段对循环的输出排序,php,wordpress,sorting,loops,Php,Wordpress,Sorting,Loops,我使用一个自定义字段来存储用户输入的日期的时间戳。我想显示按自定义日期排序的帖子,但它们拒绝按自定义字段排序 在此,我使用此自定义元框工具注册自定义字段- 然后我使用WP_Query使用以下参数循环浏览帖子: $args = array( 'post_type' => 'talks', 'posts_per_page' => -1, 'orderby' => '_cmb_start_time', 'order' => 'ASC' ); // show ta
$args = array(
'post_type' => 'talks',
'posts_per_page' => -1,
'orderby' => '_cmb_start_time',
'order' => 'ASC'
); // show talks ordered by start time
$custom_query = new WP_Query($args);
这将按添加的顺序打印帖子,而不是按自定义字段日期的顺序打印
更新 我还尝试按另一个自定义字段类型“room”进行筛选,其值等于“room 1”: 解决方案: 有了@joebuckle的解决方案,我最终得到了这个非常有效的版本:
$args = array(
'post_type' => 'talks',
'posts_per_page' => -1,
'meta_key' => '_cmb_start_time',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'room',
'value' => 'room 1',
'compare' => '='
)
));
改为像这样尝试(参考)
$args = array(
'post_type' => 'talks',
'posts_per_page' => -1,
'orderby' => '_cmb_start_time',
'order' => 'ASC',
'meta_key' => 'room',
'meta_value' => 'room 1'
);
$args = array(
'post_type' => 'talks',
'posts_per_page' => -1,
'meta_key' => '_cmb_start_time',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'room',
'value' => 'room 1',
'compare' => '='
)
));
$args = array(
'post_type' => 'talks',
'posts_per_page' => -1,
'meta_key' => '_cmb_start_time',
'orderby' => 'meta_value_num',
'order' => 'ASC'
); // show talks ordered by start time
$custom_query = new WP_Query($args);