add_filter( 'wpml_import_get_trid_from_imported_translations', integer $trid, object $firstTranslation )
- 类型
- filter
- 类别
- 插入内容
- WPML 版本
- 4.9.4
说明
当您导入翻译而没有其关联的源文章(已存在于站点上)时,此过滤器非常有用。它允许第三方代码检索翻译记录 ID (trid),以便将原始内容与其导入的翻译重新关联。
用例:
- 原始内容存在于站点上(未导入),而翻译是从外部来源(电子表格或外部工具)导入的。
- 原始内容先前已导入,且其导入元数据已被清理;稍后添加新的语言翻译。
- 必须通过共享的业务键(SKU、别名、外部 ID 等)将翻译与原始内容关联的任何工作流
参数
$trid (int|null)由导入程序解析的 trid,如果未找到则为 null。
$firstTranslation (object)
第一个翻译文章对象,包含以下属性:element_id、translation_group、language_code、source_language_code。
使用示例
add_filter( 'wpml_import_get_trid_from_imported_translations',
function( $trid, $firstTranslation ) {
if ( $trid ) {
return $trid;
}
$sku = get_post_meta( $firstTranslation->element_id, '_sku', true );
if ( ! $sku ) {
return $trid;
}
// Find the original post with the same SKU and return its trid.
$original_id = wc_get_product_id_by_sku( $sku );
if ( ! $original_id ) {
return $trid;
}
$details = apply_filters( 'wpml_element_language_details', null, [
'element_id' => $original_id,
'element_type' => 'post_product',
] );
return $details ? $details->trid : $trid;
}, 10, 2 );
相关钩子
wpml_set_element_language_details, wpml_make_post_duplicates, wpml_admin_make_post_duplicates, wpml_copy_post_to_language, wpml_delete_package, wpml_register_string, wpml_register_single_string, wpml_show_package_language_ui, wpml_delete_package_action