apply_filters( 'wpml_duplicate_generic_string', string $value_to_filter, string $target_language, array $meta_data )
- 类型
- filter
- 类别
- 杂项
- WPML 版本
- 3.2
说明
当 WordPress 文章类型被复制时,并且在将数据保存到数据库之前,WPML 会将此钩子过滤器应用于自定义字段值、文章内容、文章标题和文章摘要。通过这种方式,数据可提供给外部主题和插件进行筛选。
参数
- $value_to_filter
- (string) (必填) 要过滤的数据字符串
- $target_language
- (string) (可选) 目标语言代码
- $meta_data
- (array) (可选) 请参阅以下详情:
- context(string) 数据上下文。如果值属于自定义字段,则设置为 “custom_field”;对于所有其他情况(文章标题、内容或摘要),则设置为 “post”
- attribute(string) 设置为:对于自定义字段为 “value”,对于文章内容为 “content”,对于文章标题为 “title”,对于文章摘要为 “excerpt”
- key(string) 如果过滤器应用于自定义字段值,则为
$post_meta->meta_key。否则,为充当复制主文章的原始文章 ID - $is_serialized(bool) 仅针对自定义字段数据传递。
true|false数据是否已序列化。这允许在需要时反序列化该值。 - post_id(int) 仅针对自定义字段数据传递。正在复制的文章 ID
- master_post_id(int) 仅针对自定义字段数据传递。充当复制主文章的原始文章 ID
使用示例
基本示例
function my_override_post_duplication( $value_to_filter, $target_language, $meta_data ) {
$context = $meta_data[ 'context' ];
if ( $value_to_filter !== '' && $context ) {
$prefix = '';
$attribute = $meta_data[ 'attribute' ];
if ( $context == 'post' ) {
switch ( $attribute ) {
case 'content':
$prefix = '<h3>' . $target_language . '</h3>';
break;
case 'excerpt':
$prefix = $target_language . "nn";
break;
default:
$prefix = '[' . $target_language . '] ';
}
} elseif ( $context == 'custom_field' && $attribute == 'value' ) {
$is_serialized = $meta_data[ 'is_serialized' ];
if ( ! $is_serialized && is_string( $value_to_filter ) && ! is_numeric( $value_to_filter ) ) {
$prefix = '[' . $target_language . '] ';
}
}
if($prefix) {
$value_to_filter = $prefix . $value_to_filter;
}
}
return $value_to_filter;
}
add_filter( 'wpml_duplicate_generic_string', 'my_override_post_duplication', 10, 3 );
相关钩子
icl_ls_languages, wpml_sync_custom_field_copied_value, wpml_ls_enable_ajax_navigation, wpml_element_type, wpml_setting, wpml_sub_setting, wpml_exclude_post_from_auto_translate, wpml_forms_config_ninja-forms, wpml_forms_config_wpforms, wpml_tf_feedback_open_link