好的,这里有: ACF有日期字段,可以应用于帖子,页面等。我使用它来创建非常基本的事件,使用帖子,而不是页面。我只需要使用帖子来举办活动。考虑到这一点,这是我的问题:
我想知道是否可以删除带有PHP的帖子(在帖子模板中),(当它循环播放帖子时),如果该帖子的ACF日期字段早于当前帖子,则删除帖子日期。
这似乎应该是现在应该已经解决或追求的东西,但我没有得到很好的Google结果。所以我猜这可能涉及到cron工作或更深入的PHP /后端掌握?
通常我要做的是以下内容:
<?php
// get posts
$posts = get_posts(array(
'post_type' => 'post',
'posts_per_page' => -1,
'meta_key' => 'start_date',
'orderby' => 'meta_value_num',
'order' => 'ASC'
));
if( $posts )
{
foreach( $posts as $post )
{
// CODE to delete post if ACF date is old
$titleID = get_the_title($ID);
echo '<h3>' . $titleID . '</h3>';
// I've removed some of the other stuff like links,
// excerpts, etc, to keep this simple.
}
}
&GT;
我不只是想过滤掉旧事件,我希望它们消失,删除(保持DB亮)。
理想情况下,我不想手动删除旧事件。
答案 0 :(得分:4)
您可以使用wp_delete_post()
删除start_date
太旧的帖子:
// get a timestamp from the time string
$post_date = strtotime($post->start_date);
// check if the start_date is older than 1 week
if (((time() - $post_date) > (7 * 24 * 60 * 60))) {
// to remove the post directly i.e. not moving it to trash
// you could set the second argument to true
wp_delete_post($post->ID);
} else {
print '<h3>' . $post->post_title . '</h3>';
}