Я хотел бы знать, есть ли возможность иметь скрипт, который автоматически создает ежедневные посты «с сегодняшнего дня» до «даты окончания» (устанавливается вручную в скрипте). Таким образом, на каждой итерации post_date будет $ date + 1day.
Во-первых, я не знаю, должен ли этот скрипт выполняться в functions.php или elsswhere …
Во-вторых, я новичок в php, поэтому я понял, как создать 1 отдельный пост с помощью «wp_insert_post», но я не понимаю, как вставить его в цикл.
Нужна помощь, если у кого-то есть идея …
большое спасибо
Да, конечно, мы можем это сделать.
Пролистав /wp-includes/post.php, похоже, вам может потребоваться выполнить несколько шагов:
вставьте пост, как показывает ваш код.
function daily_post_article() {
$begin = new DateTime("2018-11-01");
$end = new DateTime("2018-12-15");
$interval = DateInterval::createFromDateString("1 day");
$period = new DatePeriod($begin, $interval, $end);
foreach ($period as $dt) {
$publishDate = $dt->format("Y-m-d");
$postTitle = "Daily Post Title => ".$publishDate;
if ( !get_page_by_title( $postTitle, "OBJECT", "post" ) ){
$args = array(
"post_title"=> "Daily Post Title => ".$publishDate,
"post_type"=>"post",
"post_date" => $publishDate,
"post_status"=>"future");
$time = strtotime( $postdate . " GMT" );
$post_id = wp_insert_post( $args );
wp_schedule_single_event( $time, "publish_future_post", array( $post_id ) );
}
}
}
add_action("wp", "daily_post_article");
Каждый пост будет автоматически опубликован в выбранную дату.
Других решений пока нет …