WPML
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
(سلسلة نصية) (مطلوب) السلسلة النصية للبيانات المراد تصفيتها
$target_language
(سلسلة نصية) (اختياري) رمز اللغة الهدف
$meta_data
(مصفوفة) (اختياري) انظر التفاصيل أدناه:
  • context(سلسلة نصية) سياق البيانات. اضبطه على “custom_field” إذا كانت القيمة تنتمي إلى حقل مخصص، وعلى “post” لجميع الحالات الأخرى (عنوان المقالة أو المحتوى أو المقتطف)
  • attribute(سلسلة نصية) اضبطه على: “value” للحقول المخصصة، و”content” لمحتوى المقالة، و”title” لعنوان المقالة، و”excerpt” لمقتطف المقالة
  • key(سلسلة نصية) $post_meta->meta_key إذا كان يتم تطبيق المرشِّح على قيم الحقول المخصصة. بخلاف ذلك، معرف المقالة الأصلية التي تعمل كأساس للتكرار
  • $is_serialized(منطقي) يُمرر فقط لبيانات الحقل المخصص. true|false ما إذا كانت البيانات متسلسلة. يتيح هذا إلغاء تسلسل القيمة إذا لزم الأمر.
  • post_id(عدد صحيح) يُمرر فقط لبيانات الحقل المخصص. معرف المقالة التي يتم تكرارها
  • master_post_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 →