我想要将2,000个数据导入到我的wordpress中,因为wp有许多功能可以很好地工作。我开始手动完成,但后来意识到,编写脚本导入它更容易。
一切都运行完美!!一个问题,我不能让它使用我的数据的RELEASEDATE作为POSTED日期。我花了2天谷歌搜索和使用SO资源,每个人都很接近,但一些答案使用wp内部编码结构,我不想这样做。以下是我到目前为止的情况:
$title = htmlentities($title,ENT_NOQUOTES,$encoding);
$keywords = htmlentities($keywords,ENT_NOQUOTES,$encoding);
$content = array(
'title'=>$title,
'description'=>$body,
'mt_allow_comments'=>1, // 1 to allow comments
'mt_allow_pings'=>0, // 1 to allow trackbacks
'post_type'=>'post',
'post_status' => 'draft',
'publish' =>$pubdate,
'mt_keywords'=>$keywords,
'categories'=>array($category)
);
$params = array(0,$username,$password,$content,true);
$request = xmlrpc_encode_request('metaWeblog.newPost',$params);
$ch = curl_init();
一切都很完美,但我无法确定工作日期。 RELEASEDATE的格式与WP,2011-03-04 14:33:21等完全相同。
它在帖子上打印日期,但“发布”表示我运行脚本的那天。在上面的例子中,我发送RELEASEDATE到$ pubdate。我知道post_date是一个对象,但不知道如何在这里实现它。
简而言之,如果我让这个脚本满了,我将在今天发布2,000条帖子! :P
答案 0 :(得分:1)
This page列表参数。
在该页面中,您可以使用“ date_created_gmt ”或“ dateCreated ”来存储日期数据。
答案 1 :(得分:1)
我是这样做的:
代码应如下所示:
$client = new IXR_Client('http://wp-blog.com/xmlrpc.php');
$post = array(
'post_type'=> 'post',
'title' => $title,
'description' => $description,
'date_created_gmt' => new IXR_Date(time()),
);
if (!$client->query('metaWeblog.newPost', '', $login, $password, $post, true))
{
die( 'Error while creating a new post' . $client->getErrorCode() ." : ". $client->getErrorMessage());
}
$post_id = $client->getResponse();
对我而言,这就像一个魅力: - )
有关 ISO8601 和XML日期格式的更多详细说明,请访问:How to scedule a Post using XMLRPC / metaWeblog.newPost ??