从外部来源创建博客帖子并设置发布日期

时间:2017-06-22 作者:Jamie Moffat

我正在构建一个脚本,从外部源创建新的博客帖子。我的代码如下:

    // Load WordPress
    require_once \'../../wp-load.php\';
    require_once ABSPATH . \'/wp-admin/includes/taxonomy.php\';
    // Set the timezone so times are calculated correctly
    date_default_timezone_set(\'Europe/London\');
    // Create post
    $id = wp_insert_post(array(
        \'post_title\'    => $headline,
        \'post_content\'  => $body,
        \'post_date\'     => date(\'Y-m-d H:i:s\'),
        \'post_author\'   => $user_id,
        \'post_type\'     => \'post\',
        \'post_status\'   => \'draft\',
    ));

if($id){
    // Set category - create if it doesn\'t exist yet
    wp_set_post_terms($id, wp_create_category($region), \'category\');
    // Add meta data, if required
    add_post_meta($id, \'meta_key\', $metadata);
    echo $open_wrap."<h2>Success!</h2>
    <p>The post has been added to the Bulletins Category as a <strong>draft</strong>.<br>
    Please $wp_url to Publish or Schedule the post.</p> 
    ".$close_wrap;

} else {
    echo "WARNING: Failed to insert post into WordPress\\n";
}
我想允许用户设置发布日期,这样他们就可以创建帖子,并在该日期自动发布。

是否有用于添加发布日期的wordpress功能?

1 个回复
SO网友:Johansson

我不知道你为什么要通过包含核心文件来加载WordPress,这一点应该有问题。

无论如何,要安排活动,可以使用wp_schedule_single_event. 此函数接受3个参数:

wp_schedule_single_event( $timestamp, $hook, $args );
在你的情况下,你可以wp_insert_post ,然后在时间到达时调用它:

// Use this instead of wp_insert_post
wp_schedule_single_event( \'SET THE TIME HERE\', \'schedule_my_post\' );

// Add an action that runs the function
add_action( \'schedule_my_post\',\'publish_my_post\' );

// Now, do the actual publish
function publish_my_post($args){
    wp_insert_post($args);
}
完成。

结束

相关推荐

两个日期之间的PRE_GET_POSTS查询(日期存储在自定义发布元中)

我有一个自定义的帖子类型,其中有一个自定义的日期字段。在帖子列表上(edit.php)I want to be able to filter posts between 2 dates based on the custom post meta date (非发布日期),此字段为_exm_date.我读过以下文章:https://rudrastyh.com/wordpress/date-range-filter.html这对于实际的发布日期非常有用,但对于它使用的自定义字段则不适用date_query.因