这个问题已在这里提出过几次,但是从我研究过的无数帖子中我找不到解决方案的成功。
与我合作的网站是优惠券网站,我有两个自定义帖子,一个用于商店,另一个用于优惠券。
两者之间存在关系,商店自定义帖子ID被归入自定义帖子元' offer_store'在优惠券定制发布。
我遇到的问题是,当我通过WP导入优惠券时,导入数据就在那里,您可以在后管理编辑页面中看到这一点,但除非我手动更新,否则关系不会匹配在帖子管理编辑页面内发帖。
我导入1000个并且无法手动执行此操作,因此一直在搜索功能。 导入完成后,您可以使用一个函数来运行:
add_action('pmxi_after_xml_import', 'after_xml_import', 10, 1);
function after_xml_import($import_id) {
$import = (int) $import_id;
if ( $import == 38 ) {
}
}
在这里,我尝试了wp_update_post();
,update_post_meta();
我尝试过的代码示例。
以下代码更新内容但不更新整个帖子,或更具体地更新自定义帖子元:
add_action('pmxi_after_xml_import', 'after_xml_import', 10, 1);
function after_xml_import($import_id) {
$import = (int) $import_id;
if ( $import == 38 ) {
$my_posts = get_posts( array('post_type' => 'offer', 'numberposts' => -1 ) );
foreach ( $my_posts as $my_post ):
$my_post['post_content'] = ' offer';
wp_update_post( $my_post );
endforeach;
}
}
我认为我已经得到以下代码错误,我尝试使用导入导入的相同值更新帖子自定义元键(offer_store):
add_action('pmxi_after_xml_import', 'after_xml_import', 10, 1);
function after_xml_import($import_id) {
$import = (int) $import_id;
if ( $import == 38 ) {
$my_posts = get_posts( array('post_type' => 'offer', 'numberposts' => -1 ) );
foreach ($my_posts as $my_post) {
$offer_store_id = get_post_meta( $my_post->ID, 'offer_store', true );
update_post_meta($my_post->ID, 'offer_store', $offer_store_id);
}
}
}
我不需要更改任何数据,我只需要一个模拟“更新”功能的功能。按钮。
我已经在互联网上搜索了一个解决方案,但找不到一个,我希望有人在这里可以挽救我的生命。
答案 0 :(得分:2)
我遇到的问题是,当我通过WP导入优惠券时,导入数据就在那里,您可以在后管理编辑页面中看到这一点,但除非我手动更新,否则关系不会匹配在帖子管理编辑页面内发帖。
这可能是您导入数据的方式的问题。我记得在导入ACF提供的字段时,WP All Import存在同样的问题。
导入自定义字段时,您需要为WPAI自定义字段部分中的每个字段设置两个行。一个需要fieldname
和value
,另一个需要_fieldname
(注意下划线)和field_xyz
,后者是ACF使用的字段标识符。< / p>
以下是我使用的导入的示例图像,您可以看到我的意思:
如果只提供一行字段名和值,则WP元数据表中缺少某些内容。正如您已经发现的那样,通过UI再次保存帖子。当您提供如上所述的字段数据时,可以避免必须这样做。
WP All Import提供了一个额外的插件,专门用于处理自定义字段 - 提供拖放式界面,自动创建这些字段组合。您不一定需要使用它,您也可以手动配置它,如上所示。