Wordpress:如何以编程方式每天添加帖子?

时间:2018-11-23 06:57:14

标签: php wordpress bulkinsert

我想知道是否有一种脚本可以自动创建从“今天”到“结束日期”(由脚本手动设置)的每日帖子。因此,每次迭代后,post_date将是$ date + 1day。

首先我不知道此脚本是否必须在functions.php或elsswhere中执行...

第二,我是php的新手,所以我了解了如何使用“ wp_insert_post”创建1个帖子,但我不知道如何将其插入循环中。

如果有人有主意,请寻求帮助... 非常感谢

1 个答案:

答案 0 :(得分:1)

是的,我们当然可以做到。
通过/wp-includes/post.php的挖掘,您可能需要执行一些步骤:

  1. 将您的post_status设置为将来。
  2. 将post_date设置为要发布的日期。
  3. 按代码所示插入帖子。

    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");
    
  4. 每个帖子将在选定的日期自动发布。

  5. 此功能由WordPress提供。