WPML
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_key si 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|false Indique 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 );

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

Les 30 hooks de la catégorie Divers →