根据 ACF time/date 字段显示或隐藏内容
Show or hide content based on ACF time/date field
如何使用两个 ACF date/time 字段在特定日期的特定时间显示和隐藏内容?我正在主持现场视频活动。我需要在直播活动开始之前显示占位符视频,然后在开始和结束 date/time(ACF date/time 字段)之间显示直播视频。我需要在活动结束后再次显示占位符视频 date/time。
我已经为 ACF 配置了一个开始 date/time 字段和一个结束 date/time 字段。
`<?php
$current_date = date('Y-m-d H:i:s');
$current_time = strtotime($current_date);
$start = get_field('start_date');
$end = get_field('end_date');
if ($current_time >= $start && $current_time <= $end){
//show content if between start and end time
echo '<h3>We are Live</h3>';
} else {
//show only before or after start & end time
echo '<h6>Not Live</h6>';
}
?>`
好像是只考虑天数,不考虑时间。
我会尝试使用 WP_Query 并将 meta_query 数组与 'relation'
一起使用
$query = new WP_Query ( array (
meta_query => array(
'relation' => 'AND',
array (
'key' => 'start_date',
'compare' => '>=',
'value'. => $current_time,
'type' => 'TIME',
),
array (
'key' => 'end_date',
'compare' => '<=',
'value'. => $current_time,
'type' => 'TIME',
)
)
));
if ( $query->have_posts() ) { while( $query->have_posts() ) {
$query->the_post();
// Your Stuff Here
}
}
我能够通过将开始和结束时间转换为 UnixTime 并添加一个字段来添加或减去时区差异的小时数来完成此操作。
<?php
$current_date = date('Y-m-d H:i:s');
$current_time = strtotime($current_date);
$time_zone = get_field('time_zone');
$now = strtotime( $time_zone['value'], $current_time);
$start = strtotime(get_field('start_date'));
$end = strtotime(get_field('end_date'));
if ($now >= $start && $now <= $end){
// Show live video between start & end time
} else {
// Show placeholder video before and after start & end time
}
?>
如何使用两个 ACF date/time 字段在特定日期的特定时间显示和隐藏内容?我正在主持现场视频活动。我需要在直播活动开始之前显示占位符视频,然后在开始和结束 date/time(ACF date/time 字段)之间显示直播视频。我需要在活动结束后再次显示占位符视频 date/time。
我已经为 ACF 配置了一个开始 date/time 字段和一个结束 date/time 字段。
`<?php
$current_date = date('Y-m-d H:i:s');
$current_time = strtotime($current_date);
$start = get_field('start_date');
$end = get_field('end_date');
if ($current_time >= $start && $current_time <= $end){
//show content if between start and end time
echo '<h3>We are Live</h3>';
} else {
//show only before or after start & end time
echo '<h6>Not Live</h6>';
}
?>`
好像是只考虑天数,不考虑时间。
我会尝试使用 WP_Query 并将 meta_query 数组与 'relation'
$query = new WP_Query ( array (
meta_query => array(
'relation' => 'AND',
array (
'key' => 'start_date',
'compare' => '>=',
'value'. => $current_time,
'type' => 'TIME',
),
array (
'key' => 'end_date',
'compare' => '<=',
'value'. => $current_time,
'type' => 'TIME',
)
)
));
if ( $query->have_posts() ) { while( $query->have_posts() ) {
$query->the_post();
// Your Stuff Here
}
}
我能够通过将开始和结束时间转换为 UnixTime 并添加一个字段来添加或减去时区差异的小时数来完成此操作。
<?php
$current_date = date('Y-m-d H:i:s');
$current_time = strtotime($current_date);
$time_zone = get_field('time_zone');
$now = strtotime( $time_zone['value'], $current_time);
$start = strtotime(get_field('start_date'));
$end = strtotime(get_field('end_date'));
if ($now >= $start && $now <= $end){
// Show live video between start & end time
} else {
// Show placeholder video before and after start & end time
}
?>