WordPress是否提供了一个用于安排帖子的API?

时间:2011-12-25 作者:21zna9

我是一个数据库noob,所以我对如何通过插件制作预定帖子有点不知所措。基本上,WP是否提供了一个参考API,允许插件创建一个预定的帖子,就像用户可以通过仪表板做的那样?

2 个回复
最合适的回答,由SO网友:Rarst 整理而成

它实际上没有API,因为从使用角度来看,它非常简单。

如果数据传递给wp_insert_post()publishfuture 中的值post_status 字段和日期,然后将其插入数据库中,并带有该日期和future 在里面post_status. 实际上,它已经被视为已安排好了。

然而,需要发生一些事情才能使该帖子在该日期发布,因此这又启动了几段代码:

何时wp_insert_post() 完成它调用wp_transition_post_status().

执行多个挂钩,包括"{$new_status}_{$post->post_type}" 它展开为future_post.

当职位类型由注册人注册时register_post_type() 它添加了_future_post_hook() 功能到\'future_\' . $post_type 钩子并执行WP-Cron 发布日期的时间表、数据中的发布ID和publish_future_post.check_and_publish_future_post() 连接到它的函数,即运行时检查该ID的post是否已计划并已启动,如果是,则将其状态翻转为published 使用wp_publish_post().wp_insert_post(), 在传递未来日期时。

SO网友:Rajeev

如果您使用xmlrpc方式发布文章,那么您可以选择不立即发布文章。

    //$client = new IXR_Client(\'http://localhost/giftanexperience/xmlrpc.php\');
    $client = new IXR_Client(\'<domain>/xmlrpc.php\');

    //if (!$client->query(\'wp.getCategories\',\'\', <username>,<password>)) {
    //      die(\'An error occurred - \'.$client->getErrorCode().":".$client->getErrorMessage());
    //}
    echo $client->getResponse();

    $content[\'title\'] = $title;
    $content[\'description\'] = $description;
    $content[\'categories\'] = $categories;
    $content[\'mt_keywords\'] = $tags;

    if (!$client->query(\'metaWeblog.newPost\',\'\', <username>,<password>, $content, true)) {
            die(\'An error occurred - \'.$client->getErrorCode().":".$client->getErrorMessage());
    }
    echo $client->getResponse() . "\\n" ;    //with Wordpress, will report the ID of the new post
在这里,您可以将true替换为false以不发布您的文章。

有关详细示例,您可以查看:http://www.home-working.info/index.php/creating-a-wordpress-website-via-xml-rpc-using-affiliate-data-feeds/

希望这有帮助。

结束

相关推荐