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()関数と互換性があるかどうか、私は知りません。
この物を知っている人はいませんか? – Damon
値のデータをチェックするとどうなりますか? var_dump($ now。 "$ start。"と "。$ end);が必要です。 は同じ形式ですか? – Stender
同じ形式です。 start_dateとEnd_dateは両方ともYmdの形式です – Damon