apply_filters( 'wpml_duplicate_generic_string', string $value_to_filter, string $target_language, array $meta_data )
- Loại
- filter
- Danh mục
- Khác
- Phiên bản WPML
- 3.2
Miêu tả
WPML áp dụng bộ lọc hook này cho các giá trị trường tùy chỉnh, nội dung bài viết, tiêu đề bài viết và tóm tắt bài viết khi một loại bài viết WordPress đang được nhân bản và trước khi dữ liệu được lưu vào cơ sở dữ liệu. Bằng cách này, dữ liệu được cung cấp cho các giao diện và plugin bên ngoài để lọc.
Đối số
- $value_to_filter
- (string) (Bắt buộc) Chuỗi dữ liệu để lọc
- $target_language
- (string) (Tùy chọn) Mã ngôn ngữ đích
- $meta_data
- (array) (Tùy chọn) Xem chi tiết bên dưới:
- context(string) Ngữ cảnh dữ liệu. Đặt thành “custom_field” nếu giá trị thuộc về một trường tùy chỉnh và “post” cho tất cả các trường hợp khác (tiêu đề bài viết, nội dung hoặc đoạn trích)
- attribute(string) Đặt thành: “value” cho các trường tùy chỉnh, “content” cho nội dung bài viết, “title” cho tiêu đề bài viết, “excerpt” cho đoạn trích bài viết
- key(string)
$post_meta->meta_keynếu bộ lọc đang được áp dụng cho các giá trị trường tùy chỉnh. Nếu không, đây là ID của bài viết gốc đóng vai trò là bản chính để nhân bản - $is_serialized(bool) Chỉ được truyền cho dữ liệu trường tùy chỉnh.
true|falseCho biết dữ liệu có được tuần tự hóa hay không. Điều này cho phép hủy tuần tự hóa giá trị nếu cần. - post_id(int) Chỉ được truyền cho dữ liệu trường tùy chỉnh. ID của bài viết đang được nhân bản
- master_post_id(int) Chỉ được truyền cho dữ liệu trường tùy chỉnh. ID của bài viết gốc đóng vai trò là bản chính để nhân bản
Ví dụ sử dụng
Một ví dụ cơ bản
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 );
Các hook liên quan
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