apply_filters( 'wpml_copy_post_to_language', int $post_id, string $target_language, bool $mark_as_duplicate )
- Tipo
- filter
- Categoria
- Inserimento di contenuti
- Versione di WPML
- 4.0.0
Descrizione
Questo hook di filtro permette agli sviluppatori di copiare un articolo in una lingua specificata con WPML. Duplica l’articolo nella lingua di destinazione e offre l’opzione di contrassegnarlo come duplicato o come traduzione.
Argomenti
Esempio di utilizzo
Nell’esempio seguente, utilizziamo il filtro per copiare un articolo con ID 1 in francese e contrassegnarlo come duplicato dell’articolo originale.
Esempio
$duplicate_post_id = apply_filters( 'wpml_copy_post_to_language', 1, 'fr', true );
Nell’esempio avanzato riportato di seguito, mostriamo come duplicare automaticamente un determinato articolo in tutte le altre lingue attive sul tuo sito WPML, escludendo la lingua originale dell’articolo.
Esempio avanzato
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
);
}
}
}
Hook correlati
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