WPML
apply_filters( 'wpml_copy_post_to_language', int $post_id, string $target_language, bool $mark_as_duplicate )
סוג
filter
קטגוריה
הכנסת תוכן
גרסת WPML
4.0.0

תיאור

הוק פילטר זה מאפשר למפתחים להעתיק פוסט לשפה מוגדרת באמצעות WPML. הוא משכפל את הפוסט לשפת היעד ומספק את האפשרות לסמן אותו כשכפול או כתרגום.

ארגומנטים

$post_id
(int) (נדרש) המזהה (ID) של הפוסט שיועתק.
$target_language
(string) (נדרש) קוד השפה של שפת היעד שאליה יועתק הפוסט.
$mark_as_duplicate
(bool) (נדרש) אם מוגדר כ־true, הפוסט המשוכפל יסומן כשכפול של הפוסט המקורי. אם false, הוא ייחשב כפוסט מתורגם.

דוגמה לשימוש

בדוגמה להלן, אנו משתמשים בפילטר כדי להעתיק פוסט עם מזהה (ID) 1 לצרפתית ולסמן אותו כשכפול של הפוסט המקורי.

דוגמה
$duplicate_post_id = apply_filters( 'wpml_copy_post_to_language', 1, 'fr', true );

בדוגמה המתקדמת שמוצגת להלן, אנו מדגימים כיצד לשכפל אוטומטית פוסט מסוים לכל שאר השפות הפעילות באתר ה־WPML שלך, למעט השפה המקורית של הפוסט.

דוגמה מתקדמת
function myplugin_duplicate_copy_post_to_secondary_languages( $post_id, $mark_as_duplicate = false ) {
    // Retrieve the post's element type, trid, and existing translations
    $element_type = apply_filters( 'wpml_element_type', get_post_type( $post_id ) );
    $trid         = apply_filters( 'wpml_element_trid', null, $post_id, $element_type );
    $translations = (array) apply_filters( 'wpml_get_element_translations', [], $trid, $element_type );

    if ( ! $translations ) {
        // Handle error or invalid values accordingly
        return;
    }

    // Retrieve the active languages
    $wpml_languages = (array) apply_filters('wpml_active_languages', [], 'orderby=id&order=desc');

    foreach ( $wpml_languages as $language ) {
        // Duplicate the post if no translation exists for the given language
        if ( ! isset( $translations[ $language['language_code'] ] ) ) {
            apply_filters(
                    'wpml_copy_post_to_language',
                    $post_id,
                    $language['language_code'],
                    $mark_as_duplicate
            );
        }
    }
}

wpml_set_element_language_details, wpml_make_post_duplicates, wpml_admin_make_post_duplicates, wpml_delete_package, wpml_import_get_trid_from_imported_translations, wpml_register_string, wpml_register_single_string, wpml_show_package_language_ui, wpml_delete_package_action

כל 10 ההוקים בקטגוריה הכנסת תוכן →