Massive photogallery import

时间:2015-06-27 作者:user3590313

我有这样一个场景:从一个旧的Wordpress站点在Wordpress中重建大约200个照片库。

我所拥有的就是。xml WXR用于post\\u类型的“photogallery”,它基本上创建了图库并附加了一组图像ID。

不幸的是,我无法导出“完整的XML”(包含图像、ID和附加的帖子),也无法访问数据库。

所以基本上我应该创建一个脚本:

读取导出的XML,检索库的原始URL(旧站点仍处于活动状态)打开URL,获取特定的图像和文本,并将其加载到wordpress中,使用文本作为图像描述,并将其与XML中找到的post\\u id相关联,打开库中下一个图像的链接(例如模拟单击“下一步”按钮),然后循环,直到库中的所有图像都已加载(每个库平均10到15个)。

有什么建议吗?

1 个回复
SO网友:Sphinxxx

你将如何在新网站上展示画廊?每个图库都是带有标准的帖子吗[gallery ids=...] 短代码?

如果是这样,您基本上只需要url for each image on the old site (如果需要,还可以添加帖子标题/文本和图像描述),您可以创建一个WXR导入文件,将所有内容导入新站点。

Example, 带有两个图像的库的导入文件(在WP 4.2.2上测试):

<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0"
    xmlns:excerpt="http://wordpress.org/export/1.2/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.2/" >

    <channel>
        <wp:wxr_version>1.2</wp:wxr_version>

        <!--A post with a little text and of course a gallery of images-->
        <item>
            <title>My first gallery</title>
            <dc:creator><![CDATA[admin]]></dc:creator>
            <description></description>
            <content:encoded><![CDATA[
<p><b>Welcome to my first gallery!</b> Here are the images:</p>
[gallery ids=301,302]
]]></content:encoded>
            <excerpt:encoded><![CDATA[]]></excerpt:encoded>
            <wp:post_id>300</wp:post_id>
            <wp:post_date>2015-03-05 16:20:00</wp:post_date>
            <wp:status>publish</wp:status>
            <wp:post_parent>0</wp:post_parent>
            <wp:post_type>post</wp:post_type>
        </item>

        <!--The images attached to that post-->
        <item>
            <title>Picture of a cat</title>
            <dc:creator><![CDATA[admin]]></dc:creator>
            <description></description>
            <excerpt:encoded><![CDATA[This is a picture of a cat I found]]></excerpt:encoded>
            <wp:post_id>301</wp:post_id>
            <wp:post_date>2015-03-05 16:21:00</wp:post_date>
            <wp:status>inherit</wp:status>
            <wp:post_parent>300</wp:post_parent>
            <wp:post_type>attachment</wp:post_type>
            <wp:attachment_url>https://upload.wikimedia.org/wikipedia/commons/f/fc/Minka.jpg</wp:attachment_url>
        </item>
        <item>
            <title>Picture of a dog</title>
            <dc:creator><![CDATA[admin]]></dc:creator>
            <description></description>
            <excerpt:encoded><![CDATA[]]></excerpt:encoded>
            <wp:post_id>302</wp:post_id>
            <wp:post_date>2015-03-05 16:22:00</wp:post_date>
            <wp:status>inherit</wp:status>
            <wp:post_parent>300</wp:post_parent>
            <wp:post_type>attachment</wp:post_type>
            <wp:attachment_url>https://upload.wikimedia.org/wikipedia/commons/b/b7/Langhaardackel_merlin_2005.jpg</wp:attachment_url>
        </item>
    </channel>
</rss>
这接近于导入所需的最低信息量,但在<item> 元素(如果需要),例如类别。

需要注意的几点:

标题(<title>) 在所有帖子和附件中必须是唯一的,否则Wordpress将在导入期间跳过它们<wp:post_id>) 你自己<在[gallery ids=...] 短代码,您需要插入图像的ID<wp:post_parent>).

  • 。。因此,从一个比新站点上任何当前帖子/附件ID都大的ID开始,然后一路计算(请参见ID的位置300, 301302 在示例中使用)
  • <wp:attachment_url> 是上的urlold site, Wordpress可以从中获取图像
  • 完成导入文件后,请转到Tools > Import > Wordpress

    (如果尚未安装“Wordpress导入器”插件,则可能需要安装该插件)

  • 选择文件并单击“上载文件并导入”<dc:creator>-由“admin”编辑,因此我只需将它们映射到此处的新站点管理员),并且most importantly, 选中“下载并导入文件附件”,使新站点从旧站点下载图像文件(通过中的URL<wp:attachment_url>).
  • Import Wordpress

    结束