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
- (문자열) (필수) 필터링할 데이터 문자열입니다.
- $target_language
- (문자열) (선택 사항) 대상 언어 코드입니다.
- $meta_data
- (배열) (선택 사항) 아래 세부 정보를 참조하세요:
- context(문자열) 데이터 컨텍스트입니다. 값이 사용자 정의 필드에 속하는 경우 “custom_field”로 설정하고, 그 외의 모든 경우(글 제목, 콘텐츠 또는 요약)에는 “post”로 설정합니다.
- attribute(문자열) 사용자 정의 필드의 경우 “value”, 글 콘텐츠의 경우 “content”, 글 제목의 경우 “title”, 글 요약의 경우 “excerpt”로 설정합니다.
- key(문자열) 필터가 사용자 정의 필드 값에 적용되는 경우
$post_meta->meta_key입니다. 그렇지 않은 경우 복제의 마스터 역할을 하는 원본 글의 ID입니다. - $is_serialized(부울) 사용자 정의 필드 데이터에만 전달됩니다.
true|false데이터가 직렬화되었는지 여부입니다. 이를 통해 필요한 경우 값의 직렬화를 해제할 수 있습니다. - post_id(정수) 사용자 정의 필드 데이터에만 전달됩니다. 복제되는 글의 ID입니다.
- master_post_id(정수) 사용자 정의 필드 데이터에만 전달됩니다. 복제의 마스터 역할을 하는 원본 글의 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