apply_filters( 'wpml_duplicate_generic_string', string $value_to_filter, string $target_language, array $meta_data )
- Type
- filter
- Catégorie
- Divers
- Version de WPML
- 3.2
Description
WPML applique ce filtre de hook sur les valeurs des champs personnalisés, le contenu de l’article, le titre de l’article et l’extrait de l’article lorsqu’un type de publication WordPress est dupliqué et avant que les données ne soient enregistrées dans la base de données. Les données sont ainsi mises à la disposition des thèmes et extensions externes pour le filtrage.
Arguments
- $value_to_filter
- (string) (Requis) La chaîne de texte de données à filtrer
- $target_language
- (string) (Facultatif) Le code de la langue cible
- $meta_data
- (array) (Facultatif) Voir les détails ci-dessous :
- context(string) Le contexte des données. Défini sur « custom_field » si la valeur appartient à un champ personnalisé et sur « post » pour tous les autres cas (titre de l’article, contenu ou extrait)
- attribute(string) Défini sur : « value » pour les champs personnalisés, « content » pour le contenu de l’article, « title » pour le titre de l’article, « excerpt » pour l’extrait de l’article
- key(string) La
$post_meta->meta_keysi le filtre est appliqué aux valeurs du champ personnalisé. Sinon, l’ID de l’article d’origine qui sert de maître pour la duplication - $is_serialized(bool) Transmis uniquement pour les données de champ personnalisé.
true|falseIndique si les données sont sérialisées. Cela permet de désérialiser la valeur si nécessaire. - post_id(int) Transmis uniquement pour les données de champ personnalisé. L’ID de l’article en cours de duplication
- master_post_id(int) Transmis uniquement pour les données de champ personnalisé. L’ID de l’article d’origine qui sert de maître pour la duplication
Exemple d’utilisation
Un exemple de base
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 );
Hooks associés
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