я делаю наоборот:
при создании поста селект с "сроком жизни" (неделя, 2 недели и тп),
значения в этом селекте генерирую как "время сейчас" + 1 неделя, 2 недели и тп,
прикрепляю полученные числа в мета поле
затем либо вешаю функцию на открытие каждого поста, сравнивала текущее время с этим мета полем (если больше, удаляю пост или в архив убираю).
либо отдельной задачей по крону ищу посты с мета полем больше чем "текущее время"