2017-03-13 5 views
0

サブセミナーと呼ばれるACFフィールドがあります。これは、サブセミナーと呼ばれる別のフィールドで、開始日と終了日を含むリピーターフィールドです。期限切れのバックエンドからACFフィールドを削除

私は、このフィールドの複数の行を持つ投稿を持っています。

期限が切れているリピータフィールドの行をバックエンドから削除して、フロントエンドに表示されないようにしたいとします。

私はこれを達成するためにこの機能を使用していますが、何かが機能していません。

add_filter('acf/load_value/name=repeater_field_name', 'delete_old_courses_by_date'); 
function delete_old_courses_by_date($rows, $post_id, $field) { 
    if (!is_array($value) || !count($value)) { 
    return $value; 
    } 
    // get the current timestamp 
    $now = time(); 

    // set up a new array to hold the values we keep 
    $new_value = array(); 
    foreach ($rows as $row) { 
    // the php strtotime() function could fail depending on 
    // the return format of the date/time fields 
    // this requires a valid date/time format as documented here 
    // http://php.net/manual/en/datetime.formats.php 
    // if this does not work I probably won't be much help figuring 
    // our how to covert your return value to something usable 
    $start = strtotime($row['start_date']); 
    $end = strtotime($row['end_date']); 
    if ($start > $now || $end > $now) { 
     $new_value[] = $row; 
    } 
    } 
    return $new_value; 
} 

repeater_field_nameをstart_dateに設定すると、すべてのstart_date行が削除されます。

してくださいではない私の日付形式ははYmdで、フォーマットはすべてのヘルプは本当にいただければ幸いです

のstrtotime()関数と互換性があるかどうか、私は知りません。

+0

この物を知っている人はいませんか? – Damon

+0

値のデータをチェックするとどうなりますか? var_dump($ now。 "$ start。"と "。$ end);が必要です。 は同じ形式ですか? – Stender

+0

同じ形式です。 start_dateとEnd_dateは両方ともYmdの形式です – Damon

答えて

2

これは、これは他の誰かに役に立てば幸い最終的には私のために働い何

<?php for($i=0;$i<10;$i++){ 
     $ap = get_post_meta($post->ID,'sub_seminars_'.$i.'_start_date',true); 
     $startdate = date("Ymd", strtotime($ap)); 
     $todaydate = date("Ymd"); 
     if(strtotime($todaydate) > strtotime($startdate) && !empty($ap)){ 
     $del_data = array(
        'Ref' => 'sub_seminars_'.$i.'_ref', 
        'Start date' => 'sub_seminars_'.$i.'_start_date', 
        'End Date' => 'sub_seminars_'.$i.'_end_date', 
        'Venue' => 'sub_seminars_'.$i.'_venue', 
        'Fees' => 'sub_seminars_'.$i.'_fees', 
        'CPE Credits' => 'sub_seminars_'.$i.'_cpe_credits' 
     ); 
     delete_row('sub_seminars', 1); 
    } 
    } ?> 

です。

関連する問題