使用导入>RSS/WXR/XML创建帖子并将值传递给自定义域

时间:2011-11-14 作者:frankV

我的问题很简单。我需要为“照片库”页面制作许多包含图像url的帖子。我读了很多关于从RSS提要和导入创建帖子的文章。我成功地创建了帖子,但无法以某种方式将值传递到自定义类型中。画廊需要两个url,一个用于图像缩略图,另一个用于全尺寸。我使用的代码如下所示;

<?xml version="1.0" encoding="UTF-8" ?>
<!-- generator="WordPress/3.2.1" created="2011-11-14 01:56" -->
<rss version="2.0"
xmlns:excerpt="http://wordpress.org/export/1.1/excerpt/"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:wp="http://wordpress.org/export/1.1/">
<item>
    <title>Pavers 1</title>
    <description></description>
    <Category>Flooring</Category>
    <Category>Pavers</Category>
<wp:postmeta>
    <wp:meta_key>port_large_image_url</wp:meta_key>
    <wp:meta_value>images/portfolio/architectural.elements/Pavers.1.jpg</wp:meta_value>
</wp:postmeta>
</item>
<item>
    <title>Swimming Pools 1</title>
    <description></description>
    <Category>Flooring</Category>
    <Category>Swimming Pools</Category>
<wp:postmeta>
    <wp:meta_key>port_large_image_url</wp:meta_key>
    <wp:meta_value>images/portfolio/architectural.elements/Swimming.Pool.Decks.1.jpg</wp:meta_value>
</wp:postmeta>
</item>
</channel>
</rss>
我在导出帖子并查看生成的xml文件时确认了meta\\u密钥。所以我知道我必须靠近!很明显我错过了什么。

还有一个问题要回答;如果我正确理解了这一点,那么自定义字段就是单独的“元密钥”?是这样吗?

我有近1000张图片,我需要创建个人帖子,包括描述和类别。如果我能够“批量”它们,那么我将节省大量时间,并消除人为错误的高概率。我真的很感激任何人的帮助或指引正确的方向。

1 个回复
SO网友:frankV

我坚持不懈地搜索和阅读,直到找到答案!事实证明,正确的使用方法实际上是MetaWeblog API和XMLRPC,您必须激活它们,因为它在默认情况下是禁用的。首先,访问管理面板中的设置菜单并导航到“写入”。向下滚动,直到在“远程发布”下看到XML-RPC复选框。一旦这是保存您的几乎所有设置。

您必须导出帖子,然后通读该xml文件,以获得特定自定义字段的元名称。以下是我使用的代码:

<?php
$BLOGURL = "your.wordpress.root/folder";
$USERNAME = "your_uesername";
$PASSWORD = "your_password";

function get_response($URL, $context) {
if(!function_exists(\'curl_init\')) {
die ("Curl PHP package not installed\\n");
}

/*Initializing CURL*/
$curlHandle = curl_init();

/*The URL to be downloaded is set*/
curl_setopt($curlHandle, CURLOPT_URL, $URL);
curl_setopt($curlHandle, CURLOPT_HEADER, false);
curl_setopt($curlHandle, CURLOPT_HTTPHEADER, array("Content-Type: text/xml"));
curl_setopt($curlHandle, CURLOPT_POSTFIELDS, $context);

/*Now execute the CURL, download the URL specified*/
$response = curl_exec($curlHandle);
return $response;
}

/*Creating the metaWeblog.newPost request which takes on five parameters
blogid,
username,
password*/

/*The title of your post*/
$title = "Sample Post Title with Custom Fields";

 /*The contents of your post*/
 $description = "a collection lorem ipsums";

/*Forming the content of blog post*/
$content[\'title\'] = $title;
$content[\'description\'] = $description;
$content[\'categories\'] = array("Uncategorized");
/*Pass custom fields*/
$content[\'custom_fields\'] = array(
    array( \'key\' => \'your_custom_feild_meta-key\', \'value\' => \'place whatever value your custom field requires here\' )
    );
/*Whether the post has to be published, false means it will be created as a draft*/
$toPublish = false;
$request = xmlrpc_encode_request("metaWeblog.newPost",
array(1,$USERNAME, $PASSWORD, $content, $toPublish));

/*Making the request to wordpress XMLRPC of your blog, you may have to change this to the correct path for your xmlrpc.php file*/
$xmlresponse = get_response($BLOGURL."/xmlrpc.php", $request);
$response = xmlrpc_decode($xmlresponse);

/*Printing the response on to the console*/
/*If it works, you\'ll see a number followed by :Post ID*/
echo ":Post ID"; print_r($response);
 echo "\\n";
  ?>
就是这样!现在,您可以使用一些php、javascript、perl。。。你想要什么都行!只有几个变量需要更改。

结束

相关推荐

如何从其他网站获取RSS提要

我有3-4个博客,2个关于我想要的相同主题,如果我在第一个博客上发表文章,那么第二个博客可以自动获取提要,并将其作为文章保存在数据库中或者,有谁能告诉我,当有人在他的博客中发表文章时,粉碎网络是如何工作的?粉碎获取提要和摘录,并在粉碎网络中显示,当用户单击该文章时,他/她重定向到原始博客文章。