所以我花了大约5个小时试图弄明白为什么我的代码看起来很正常,但没有给我想要的行为。感谢优秀的评论员,我能够在没有指定event\\u日期的情况下显示当前帖子,但无法按日期获取帖子。
我开始跳出框框思考,了解到它显示的是“今天”的活动,但服务器的时区在另一个国家,所以对我来说,这是明天的活动。我指定了默认时区,它工作得很好!
下面是我用来获取自定义帖子类型“event”的快捷码,根据哪些帖子的自定义字段“event\\u date”值为todays date
// Add Shortcode
function custom_shortcode() {
date_default_timezone_set("America/New_York");
// find todays date
$today = date("Ymd");
// args
$args = array(
\'post_type\' => \'event\',
\'meta_key\' => \'event_date\',
\'meta_value\' => $today
);
// query
$the_query = new WP_Query( $args );
// The Loop
if ( $the_query->have_posts() ) {
$out .= \'<ul>\';
while ( $the_query->have_posts() ) {
$the_query->the_post();
$out .= "<div>";
$out .= get_field(\'event_name\') . "<br>";
$out .=\'<img class="myimage" style="max-width:180px;" src="\'. get_field(\'event_image\') . \'">\' ;
$out .= " <br>";
$out .= \'<div class="date">\' . get_field(\'event_date\') . "</div>" . "<br>";
$out .= \'<div class="time">\' . get_field(\'event_time\') . "</div>" ;
$out .= get_field(\'buy_ticket_button\') . "<br>";
$out .= "</div>";
}
wp_reset_postdata();
}
return $out;
}
add_shortcode( \'todaysevent\', \'custom_shortcode\' );