apply_filters( 'wpml_copy_post_to_language', int $post_id, string $target_language, bool $mark_as_duplicate )
- סוג
- filter
- קטגוריה
- הכנסת תוכן
- גרסת WPML
- 4.0.0
תיאור
הוק פילטר זה מאפשר למפתחים להעתיק פוסט לשפה מוגדרת באמצעות WPML. הוא משכפל את הפוסט לשפת היעד ומספק את האפשרות לסמן אותו כשכפול או כתרגום.
ארגומנטים
דוגמה לשימוש
בדוגמה להלן, אנו משתמשים בפילטר כדי להעתיק פוסט עם מזהה (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