首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何以编程方式将XML数据导入Wordpress?

如何以编程方式将XML数据导入Wordpress?
EN

Stack Overflow用户
提问于 2013-11-11 09:02:10
回答 1查看 3.1K关注 0票数 1

Wordpress提供了一种使用XML导入和导出数据的简单方法。它是用一个基于GUI的内置导入程序完成的。然而,我想要做的是能够从我的主题中导入某些XML文件(在激活或执行函数之后)。

我的例子是:虽然有一些插件可以为您创建虚拟内容,但我无法找到任何方法来完成我正在做的工作--导入存储在XML文件中的一组ACF字段。

有的方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-12 14:00:33

更新:此函数用于处理XML数据,并且仅限于版本4。ACF 5将其字段导出为JSON .

这个解决方案变成了Wordpress plugin

这是解决我问题的办法。

代码语言:javascript
复制
function insert_acf_field( $xml_string, $allow_duplicates = false ) {

// Parse ACF post's XML
$content = simplexml_load_string( $xml_string, 'SimpleXMLElement', LIBXML_NOCDATA); 

// Parse XML post attributes containing fields
$wp_post_attributes = $content->channel->item->children('wp', true);

# Copy basic properties from the exported field
$wp_post_data = array(
    'post_type'   => 'acf',
    'post_title'  => $content->channel->item->title,
    'post_name'   => $wp_post_attributes->post_name,
    'post_status' => 'publish',
    'post_author' => 1

);

$the_post = get_page_by_title($content->channel->item->title, 'OBJECT', 'acf');

# Execute only if doesn't exist already
if ( !$the_post || $allow_duplicates == true ) {
    $post_id = wp_insert_post( $wp_post_data );
}
else {
    $post_id = $the_post->ID;
}

$wp_post_meta = $content->channel->item->children('wp', true);

if( $wp_post_meta ) {
    foreach ( $wp_post_meta as $row) {

        // Choose only arrays (postmeta)
        if( count($row) > 0) {
            // using addlashes on meta values to compensate for stripslashes() that will be run upon import
            update_post_meta( $post_id, $row->meta_key, addslashes( $row->meta_value ) );
        }

    }
}
}

,以下是如何使用它:

函数至少需要传递$xml_string参数。它应该包含在导出ACF字段( acf类型的post)时由ACF插件生成的XML文件的内容。

该函数将尝试创建一个新的ACF post,除非已经存在,然后用字段填充它。若要插入具有相同标题的多个字段(克隆),应将true作为第二个参数传递。

仍有一些问题有待解决,但处于当前状态的函数应该是可用的。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19902413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档