Chez momo-fr

CPT + ACF + Polylang : comment utiliser ces extensions ensembles

Vous utilisez un Custom Post Type réalisé soit avec CPT UI ou un code maison et vos contenus dynamiques à travers des champs ACF, mais ils ne sont pas pris en compte avec Polylang en utilisant Elementor PRO ? Voyons comment y remédier…

Notez que cet article concerne les version gratuites des extensions. ACF + Polylang PRO ne rencontrent pas de problèmes déclaratif.

Définition du contexte qui pose problème avec Polylang et Elementor PRO

Polylang gratuit supporte, de base, les CPT et ACF, lorsque l’on utilise Polylang avec Elementor PRO avec des modèles dynamiques il faut ajouter l’extension Connect Polylang for Elementor pour pouvoir synchroniser les modèles de langues entre-eux. Cette extension bloque la synchronisation des champs ACF si vous les utilisez avec un Custom Post Type. Il faut déclarer votre CPT et les champs ACF au sein d’un fichier XML référent pour Polylang. Voici la procédure à suivre.

Déclarez vos champs personnalisés ACF et votre CPT pour Polylang

Ce problème je l’ai rencontré récemment sur un projet, les entrées du Custom Post Type réalisées via des champs ACF ne pouvaient être traduits avec Polylang. À chaque traduction en anglais la version française affichait la traduction anglaise.

Après recherche et consultation de la documentation de Polylang il apparaît que la prise en compte des champs ACF, cu CPT et sa/ses taxonomies peut se faire via un fichier wpml-config.xml.

Construction du fichier XLM pour Polylang

En suivant la documentation Polylang j’ai réalisé le fichier suivant :

<wpml-config>
    <custom-fields>
        <custom-field action="translate">sous-titre</custom-field>
        <custom-field action="translate">description</custom-field>
        <custom-field action="translate">situation</custom-field>
        <custom-field action="translate">superficie</custom-field>
        <custom-field action="translate">cepages</custom-field>
        <custom-field action="translate">age_moyen_des_vignes</custom-field>
        <custom-field action="translate">vendanges</custom-field>
        <custom-field action="translate">vinification</custom-field>
        <custom-field action="translate">elevage</custom-field>
        <custom-field action="translate">production</custom-field>
    </custom-fields>
    <custom-types>
        <custom-type translate="1">vins</custom-type>
    </custom-types>
    <taxonomies>
        <taxonomy translate="1">categorie_de_vin</taxonomy>
    </taxonomies>
</wpml-config>

pour chaque type d’entrée on déclare la balise idoine (custom-fields, custom-types, taxonomies) avec leur identifiant. Pour le CPT et la taxonomie on déclare : translate= »1″ pour autoriser la traduction.

Le fichier doit impérativement êtres nommé « wpml-config.xml » pour être pris en compte par Polylang.

Emplacement du fichier pour une prise en compte effective par Polylang

Notez bien que le fichier doit être placé d’une certaine manière pour être pris en compte. La bonne façon de faire est de créer un sous-dossier « polylang » dans le dossier « wp-content » :

CPT + ACF + Polylang : comment <b>utiliser ces extensions ensembles</b> 1

Une fois en place les traductions seront bien gérée au sein de Polylang, du CPT et de ses catégories, et enfin les champs ACF.

Autre solution via un code snippet PHP pour un thème enfant

J’ai trouvé une autre solution plus simple mais non testée en environnement de production avec un snippet PHP à mettre dans un thème enfant (ou en utilisent l’extension Code Snippet si vous n’utilisez pas de thème enfant). Voici le code :

// SUPPORT POLYLANG FOR ACF
add_filter('pll_get_post_types', 'wearewp_add_acf_pll', 10, 2);
function wearewp_add_acf_pll( $post_types, $is_settings ) {
	$post_types[] = 'acf-field-group';
    return $post_types;
}

Advanced Custom Fields : Extended propose elle aussi le support entre Polylang et ACF

Enfin, pour terminer cet article et si vous avez un peu de latitude au niveau de vos extensions (point trop n’en faut) l’extension Advanced Custom Fields : Extended vous apportera le support des champs ACF par Polylang. A essayer.

Sources : extension ACF gratuite, extension Polylang gratuite, documentation Polylang

Vous aimerez aussi

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Plus de résultats...

Generic selectors
Corespondance exacte
Rechercher dans le titre
Rechercher dans le contenu
Post Type Selectors

Autres catégories du Blog

Partager cette publication