当前正在构建网站,需要创建“时间表”,以显示在特定时间播放的演示者。
使用ACF插件输入演示者播放的时间,将自定义字段值保存为时间戳。
由于某些原因,我无法通过查询显示某个时间正在播放的演示者。与当前时间戳相比,它似乎只显示具有最高时间戳值的演示者。下面是代码的简化版本。
<?php $args = array(
\'post_type\' => \'presenter\',
\'posts_per_page\' => \'1\',
\'meta_key\' => \'on_air\',
\'orderby\' => \'meta_value_num\',
\'order\' => \'DESC\'
);
$airquery = new WP_Query( $args ); ?>
<?php if ( $airquery->have_posts() ) : while ( $airquery->have_posts() ) : $airquery->the_post(); ?>
<?php
$now = strtotime(date(\'d-m-Y H:i:s\')); // get current timestamp
$stored_value = get_field(\'on_air\'); // The saved post timestamp comparing to current timestamp
?>
<?php if( $now > $stored_value )
{
echo the_title();
}
?>
<?php endwhile; endif; wp_reset_postdata(); ?>
如您所见,我正在以post类型查询帖子,并希望按meta值排序,这似乎也不起作用。
我返回的只是时间戳值大于当前时间戳的帖子。
一切都很奇怪。不知道我是否需要以某种方式获得所有帖子的价值,然后比较$stored_value
现在到美元了吗?
任何帮助都会很好!
SO网友:s_ha_dum
为什么不拉一个你需要的帖子,而不是拉一个帖子然后检查元键的值呢?
$now = strtotime(date(\'d-m-Y H:i:s\')); // get current timestamp
$args = array(
\'post_type\' => \'presenter\',
\'posts_per_page\' => \'1\',
\'order\' => \'DESC\',
\'meta_query\' => array(
array(
\'key\' => \'on_air\',
\'value\' => $now,
\'compare\' => \'>=\',
),
),
);