你好,
在警告中,有一个关于后期元关联的说明,指定这些不会在传输中“带来”。 在我开发具有复杂关系元数据(使用 ACF)的站点网络时,我有两个问题:
提前致谢!
嗨@john-lynch-cp,我们对这个话题进行了一些内部讨论,但我们还没有最终的方向。
保存的元值是相关对象的ID,在原始站点和远程站点之间是不同的。 您可以通过用远程站点上的正确对象 ID(元值)替换对象 ID(元值)来解决此问题:
dt_connection_map
元,可用于检索远程帖子 ID。您可以通过挂钩到dt_push_post_args
和dt_subscription_post_args
来准备帖子元数据(更改帖子 ID、添加术语 slug、添加用户登录)。
要更新远程站点上的正确元值,请挂钩dt_process_distributor_attributes
和dt_process_subscription_attributes
。
对于您的问题:
该注释引用了“推送”传输。 “拉”请求也是如此吗?
简短的回答是否定的,推和拉是不同的。 虽然使用 pull 可以达到与 push 相同的结果,但您需要一些额外的步骤来准备 post meta。 对于push
,因为您是原始站点,所以您可以在推送之前准备额外的元数据。 但是你不能用pull
做同样的事情。 Distributor 使用posts 端点来获取pull
的post 数据,参见这个。
是否有建议的插件“逐案”扩展的示例? 我很想尝试一下,但不知道从哪里开始!
例如,您有一个名为test_meta
的分类字段(使用 ACF),它链接到project_category
分类。 请注意,下面的示例仅用于教育目的,它不是最佳解决方案。
add_action( 'dt_push_post_args', 'prepare_meta', 10, 2 );
function prepare_meta( $post_body, $post ) {
$term_id = get_post_meta( $post->ID, 'test_meta', true );
if( $term_id ) {
$term = get_term_by( 'id', $term_id, 'project_category');
$post_body['project_category_slug'] = $term->slug;
}
return $post_body;
}
add_action( 'dt_process_distributor_attributes', 'set_meta', 10, 2 );
function set_meta( $post, $request ) {
$term = get_term_by( 'slug', $request['project_category_slug'], 'project_category' );
if ( ! $term ) {
return;
}
update_post_meta( $post->ID, 'test_meta', $term->term_id );
}
顺便说一句,Novembit 有一个插件,它类似于上面的例子,但更复杂: https :
希望这有帮助!
@john-lynch-cp 以上回复是否解决了您的问题,以便我们可以解决此问题,或者您有任何后续问题吗?
感谢您的跟进,很高兴您现在可以关闭它。 我认为我们正在寻找不同的 CMS,因为分发挑战可能更有意义。
最有用的评论
嗨@john-lynch-cp,我们对这个话题进行了一些内部讨论,但我们还没有最终的方向。
保存的元值是相关对象的ID,在原始站点和远程站点之间是不同的。 您可以通过用远程站点上的正确对象 ID(元值)替换对象 ID(元值)来解决此问题:
dt_connection_map
元,可用于检索远程帖子 ID。您可以通过挂钩到
dt_push_post_args
和dt_subscription_post_args
来准备帖子元数据(更改帖子 ID、添加术语 slug、添加用户登录)。要更新远程站点上的正确元值,请挂钩
dt_process_distributor_attributes
和dt_process_subscription_attributes
。对于您的问题:
简短的回答是否定的,推和拉是不同的。 虽然使用 pull 可以达到与 push 相同的结果,但您需要一些额外的步骤来准备 post meta。 对于
push
,因为您是原始站点,所以您可以在推送之前准备额外的元数据。 但是你不能用pull
做同样的事情。 Distributor 使用posts 端点来获取pull
的post 数据,参见这个。例如,您有一个名为
test_meta
的分类字段(使用 ACF),它链接到project_category
分类。 请注意,下面的示例仅用于教育目的,它不是最佳解决方案。顺便说一句,Novembit 有一个插件,它类似于上面的例子,但更复杂: https :
希望这有帮助!