WPML
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

모든 기타 훅 30개 →