首先是我网站的链接:http://villatacchini.ch
我有2个自定义字段:“开始日期”和“结束日期”。
如果管理员没有设置“结束日期”字段,我想动态地设置结束日期和开始日期。
有可能吗?
我在我的字段中使用ACF,但如果有必要,我可以在php中导出我的字段:添加到文件functions.php
我使用meta_key进行查询。
最初我使用“开始日期”对事件进行排序。但是当一个事件发生在几天之后,它会在第二天之后消失。
所以现在我使用“结束日期”,但是一天的事件没有定义“结束日期”。
有关信息,如果我在一天内为我的活动定义了“结束日期”:它可以工作。但是如果事件是一天不需要设置结束日期(因为它与开始日期相同),我会简化事件的发布。
我的代码:
$args = array(
'post_type'=>'evenement','meta_key'=>'end-date','orderby'=>'meta_value_num' , 'order'=>'ASC' , 'posts_per_page'=> 3,
'meta_query'=> array (array('key' => 'end-date', 'compare' => '>=', 'value' => $current_date, 'type' => 'numeric',))
);
query_posts( $args );
如果我不明白,我会说很少的英语对不起
如果在发布帖子时填写字段,可能会解决问题。 是否可以使用“开始日期”字段
设置“结束日期”字段的默认值答案 0 :(得分:1)
我找到了你的问题,因为我和你有完全相同的问题。我的回答是在两年之后,但也许它可以帮助那些遇到同样问题的人。
获得它的方法是在保存自定义字段值时使用ACF过滤器。
// Auto-populate end date if it is empty.
function update_end_date_cf( $value, $post_id, $field ) {
//NOTE: don't use get_field() because it retrieves the value
//in a preformatted way different as it is saved in database
$end_date = get_post_meta( $post_id, 'end_date_cf_name', true );
$start_date = get_post_meta( $post_id, 'start_date_cf_name', true );
if ($end_date == '' && $start_date != '') {
$value = $start_date;
}
return $value;
}
add_filter('acf/update_value/name=end_date_cf_name', 'update_end_date_cf', 10, 3);
希望它有所帮助!
答案 1 :(得分:0)
逻辑:
if end-date is empty
set end-date equal to start-date
它看起来像这样
<?php if( get_field('end-date') ): ?>
<?php $end-date = $start-date ?>
//Your code here
<?php endif; ?>