apply_filters( 'wpml_duplicate_generic_string', string $value_to_filter, string $target_language, array $meta_data )
- ประเภท
- filter
- หมวดหมู่
- เบ็ดเตล็ด
- เวอร์ชันของ WPML
- 3.2
คำอธิบาย
WPML ใช้ฮุกฟิลเตอร์นี้กับค่าฟิลด์กำหนดเอง เนื้อหาโพสต์ ชื่อโพสต์ และข้อความที่ตัดตอนมาของโพสต์เมื่อมีการทำสำเนาประเภทโพสต์ของ WordPress และก่อนที่จะบันทึกข้อมูลลงในฐานข้อมูล ด้วยวิธีนี้ ข้อมูลจะพร้อมใช้งานสำหรับธีมและปลั๊กอินภายนอกเพื่อทำการกรอง
อาร์กิวเมนต์
- $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ข้อมูลนั้นถูก serialize ไว้หรือไม่ สิ่งนี้ช่วยให้สามารถ unserialize ค่าได้หากจำเป็น - 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