我正在构建一个新的WordPress网站,并且必须将帖子(100+)迁移到新的构建中。我也通过WP Importer导入了内容。
我正试图找到一种方法,将所有帖子的内容字段(自定义帖子类型)迁移到嵌套在中继器中的ACF灵活内容字段。有没有一种更快的自动化方法,而不是复制内容并粘贴到每个帖子的正确字段中。
例如,我的字段设置如下:段(中继器)>模块(灵活内容)>单列(所见即所得)
我已经发现了这个,但我不能让它工作,因为它看起来像这只是一个嵌套字段而不是两个。https://www.nopio.com/blog/moving-content-from-default-wordpress-wysiwyg-to-custom-acf-field/
我也在考虑将特色图像迁移到ACF字段(不嵌套)。
谁能给我指个正确的方向?一个编辑,我一直试图让下面的代码工作,但有点不确定通过字段嵌套。
$post = get_queried_object();
// get all posts
$args = array(
'post_type' => 'post',
'posts_per_page' => -1,
'post_status' => 'any'
);
$myposts = get_posts( $args );
foreach ( $myposts as $post ) : setup_postdata( $post );
// get post_content from default post WYSIWYG
$default_field_content = get_post_field('post_content', (get_the_ID()));
//flexible content
$row = array(
array(
'section' => $default_field_content, // field name
'acf_fc_layout' => 'section' // layout name
),
);
// flexible content field key value (have to use ‘inspect’ in ACF admin to get it
$field_key = 'field_5b757ea595ae0';
// update the field
update_field( $field_key, $row, get_the_ID());
endforeach;
wp_reset_postdata();
字段键是字段键,无论是否嵌套。需要注意的是,特征图像被存储为ID,而acf image字段也被存储为附件ID。
逐级执行(并备份数据库)检查。
我更喜欢把这些东西写成短代码。
稍后我将添加删除原始特色图像的关键步骤。(完成:要非常小心,你的第一步是正确的,因为你不能做后,删除原来的特色图像- obv)
function migrate_logo()
{
$args = array(
'post_type' => '[POST TYPE]',
'posts_per_page' => -1,
'post_status' => 'any',
);
$post_query = new WP_Query($args);
while ($post_query->have_posts()) : $post_query->the_post();
$thumbnail_ID = get_post_thumbnail_ID();
//Let's have a look
echo $thumbnail_ID;
echo '<br>';
// field key value
$field_key = 'field_63f76a3a706da';
// update the field
update_field($field_key, $thumbnail_ID);
// Check it
echo "Field Value: ";
the_field('logo');
// Don't you just love Wordpress
// Delete the original Featured image
delete_post_thumbnail(get_the_ID());
endwhile;
wp_reset_postdata();
}
add_shortcode( 'migrate-logo', 'migrate_logo' );