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 אם הפילטר מוחל על ערכי שדות מותאמים אישית. אחרת, המזהה (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 ההוקים בקטגוריה שונות →