• Passer à la navigation principale
  • Passer au contenu principal
  • Passer à la barre latérale principale
  • Passer au pied de page

Grégoire Noyelle

Créateur de thèmes WordPress :: Formateur :: Web Designer

  • Formations
  • Tutoriels
  • À propos
  • Contact
  • Newsletter

ACF :: Créer une date Intertionalisable

Mis à jour le 18 novembre 2015 par Grégoire Noyelle 15 commentaires

Autres tutoriels sur le sujet

  • Soumettre des contenus WordPress sur mesure avec Gravity Forms et ACF
  • WordPress :: Créer un widget Text Rotator avec ACF Pro et ACF Widgets
  • WordPress :: Créer un widget Slick Slider avec ACF Pro et ACF Widgets
  • WordPress :: Créer un widget avec ACF Pro et ACF Widgets
  • WordPress :: Utiliser le champ Image d’ACF dans vos thèmes
  • WordPress :: Comment forcer l’activation d’Advanced Custom Fields (ACF)
  • ACF Pro :: Ajouter des pages d’options WordPress
  • WordPress :: Réduire les dépendances d’Avanced Custom Fields
  • WordPress :: Utiliser les cases à cocher d’Avanced Custom Fields (ACF)
  • WordPress :: Créer des articles relatifs avec Advanced Custom Fields (ACF)
  • WordPress :: Utilisation basique d’Advanced Custom Fields (ACF)

Nous verrons dans ce tutoriel comment créer un champ de date dans ACF qui est internationalisable en fonction de la langue choisie dans le back-office. Ce tuto est inspiré de la documentation en ligne d’ACF.

Création du champ de date dans ACF

Je vais d’abord créé un champs date avec les réglages par défaut.

Capture: Installation du Champs date dans ACF

Afficher la date dans la boucle

D’abord, tous les formats de date disponibles dans WordPress sont dans le codex.

Enregistrement des données

Les données sont enregistrées sous la forme PHP car par défaut, ACF utilise un format jQuery.

<?php
$date_d = get_field('gn_date_debut');

// Extraire Y,M,D
$y = substr($date_d, 0, 4);
$m = substr($date_d, 4, 2);
$d = substr($date_d, 6, 2);

// Créer le format UNIX
$time_d = strtotime("{$d}-{$m}-{$y}");
?>
  • j’obtiens le résultat du champs avec la variable $date_d
  • j’extrais chaque partie de la date avec les trois variables qui suivent au format PHP
  • avec la variable $time_d, je créée la version Unix de la date avec toutes variables précédentes

Afficher les données

<p class="date_month">Du</p> 
<p class="date_day">
<?php echo date('d', $time_d); ?>
</p>            
<p class="date_month">
<?php echo date_i18n('M', $time_d); ?>
</p>
  • la première date n’a pas de format particulier car c’est un nombre
  • la deuxième date utilise la fonction date_i18n. Elle permet d’afficher la date au bon format si elle a utilisée le format Unix (voir plus haut avec la variable $time_d)

Résulat en ligne

Dans mon exemple en ligne, j’ai une date de début et une date de fin mais le principe reste le même dans les deux cas.

Capture: ACF résultat en ligne du champs date

Enjoy!!

FacebookTweetLinkedInEmailPrint

Étiquettes : intermédiaire Plugin ACF Tuto WordPress

Grégoire Noyelle Formateur WordPress

À propos Grégoire Noyelle

Grégoire Noyelle, Créateur de Thèmes WordPress depuis plus de 15 ans, Formateur spécialiste sur WordPress (FSE), WooCommerce, HTML et CSS (Grid Layout) dans son centre de Formation dédié au CMS WordPress. Suivez moi sur Twitter ou LinkedIn.
[En savoir plus]

Interactions du lecteur

Commentaires

  1. Avatar photoJulien Maury dit

    21 février 2014 à 14 h 37 min

    Salut, Grégoire, merci pour cet article. Effectivement la gestion des dates est un point-clé et ACF est une bonne solution pour automatiser tout cela en évitant les soucis éventuel de timestamp.

    Attention la fonction PHP est substr() et pas subtr() (erreur de frappe) , elle ne stocke pas mais coupe la chaîne où cela nous arrange.

    Répondre
    • puce de ParagrapheGrégoire Noyelle dit

      21 février 2014 à 14 h 54 min

      Salut Julien
      Merci pour tes remarques. J’ai corrigé mes coquilles 🙂

      Répondre
  2. Avatar photoRahe dit

    21 février 2014 à 17 h 32 min

    Hello,
    Le fait d’enregistrer ta date au format yymmdd permet de faire directement un strtotime sur le retour de ta valeur et avoir un timestamp 😉

    $time_d = strtotime(get_field('gn_date_debut'));

    Répondre
    • puce de ParagrapheGrégoire Noyelle dit

      21 février 2014 à 21 h 44 min

      Merci Nicolas 🙂 C’est corriger.

      Répondre
  3. Avatar photoJonathan Buttigieg dit

    21 février 2014 à 20 h 39 min

    Salut Grégoire,

    Je ne comprends pas pourquoi tu fais ta moulinette pour obtenir le timestamp de la date. Il te suffit de mettre « Yes » a « Save as timestamp? » dans les options du champ pour que tu es directement $time_d = get_field(‘gn_date_debut’);

    Répondre
    • puce de ParagrapheGrégoire Noyelle dit

      21 février 2014 à 21 h 47 min

      Salut Jonathan. Merci. C’est bien d’être entouré d’experts (+Nicolas). J’ai modifié.

      Répondre
    • Avatar photoAlexandre Sadowski dit

      21 février 2014 à 22 h 41 min

      Jonathan,
      Il me semble que l’option d’enregistrement « Save as timestamp? » se trouve dans l’add-on : http://www.advancedcustomfields.com/add-ons/date-time-picker/ et non dans le champ « date » se trouvant dans le coeur d’ACF

      Répondre
      • puce de ParagrapheGrégoire Noyelle dit

        21 février 2014 à 22 h 45 min

        Merci Alexandre. Oui effectivement, en natif je n’ai rien trouvé.

        Répondre
        • Avatar photoJonathan Buttigieg dit

          22 février 2014 à 12 h 16 min

          Oui en effet, ce n’est pas disponible en natif, c’est via le plugin indiqué par Alexandre 🙁

          Répondre
  4. Avatar photoAlexandre Sadowski dit

    21 février 2014 à 22 h 38 min

    Hello Grégoire,

    D’autres petites astuces également à connaitre avec les dates d’ACF. Le fait d’enregistrer un format « yymmdd » pourra te permettre de faire des meta_query pour faire des comparaisons entre deux dates et bien meilleur que si le format était sauvegardé en timestamp.

    Autre astuce si jamais tu enregistres ta date au format timestamp « @ », jQuery t’enregistrera le timestamp en ms hors le timestamp UNIX est en secondes, il faudra donc à chaque fois faire  » * 1000  » pour avoir le bon résultat attendu.

    Répondre
    • puce de ParagrapheGrégoire Noyelle dit

      21 février 2014 à 22 h 50 min

      Merci encore Alexandre. J’ai ajouté ton commentaire dans l’article.

      Répondre
    • Avatar photoJonathan Buttigieg dit

      22 février 2014 à 12 h 15 min

      Est-ce que tu pourrais expliquer pourquoi (ou via un exemple) le format yymmdd est bien meilleur que le timestamp ? Tu parles de perf ou meilleur en terme de manipulation ?

      Pour le timestamp jQuery, c’est bizarre que tu es ce comportement, parce que perso il me l’enregistre bien directement en secondes. J’ai peut-être loupé quelque chose à un moment.

      Répondre
      • Avatar photoAlexandre Sadowski dit

        25 février 2014 à 23 h 12 min

        Effectivement je me suis mal exprimé. Je parlais en terme de manipulation et non en terme de performance.

        Pour le timestamp jQuery, le problème est sur le « date » natif d’ACF et non sur l’add-on cité plus haut.

        Répondre
  5. Avatar photoOlivier dit

    26 septembre 2018 à 12 h 00 min

    Bonjour, dans le cadre de séances de cinéma, je souhaiterais rajouter un custom field dans mes champs date pour signaler que certaines séances (mais pas toutes donc) sont accessibles au malvoyants/malentendants par l’affichage d’un picto à côté de la date. Une idée ? Merci

    Répondre

Laisser un commentaire Annuler la réponse

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Barre latérale principale

Tutoriels par Thèmes

  • Tous les tutoriels
  • WordPress 100% Bloc
  • WordPress
  • Web Design

Partenaires

Liste des outils et services que je recommande:

Divi WordPress Theme

Elementor

Genesis FrameWork

GeneratePress

LearnDash LMS

WooCommerce e-boutique

Gravity Forms

WPforms

Séries complètes de tutoriels

  • Les bases de Grid Layout

Footer

Centre de Formation WordPress

  • Votre Formateur WordPress
  • Centre de formation WordPress
  • FAQ sur le centre de formation
  • Témoignages sur le centre de formation
  • CGV du centre de formation
  • Charte de qualité du centre de formation
  • Réglement intérieur du Centre de formation

Formations actives

  • WordPress 100% Bloc Expert
  • Créer et mettre en ligne son site Pro avec WordPress
  • Personnaliser son site WordPress avec le CSS
  • Créer des thèmes WordPress sur mesure avec Genesis
  • Optimiser la production de site WordPress
  • Utiliser les CSS avancés dans votre thème WordPress
  • Utiliser Grid Layout CSS dans votre thème WordPress
  • Créer et gérer sa boutique WooCommerce
  • Créer un thème sur mesure avec WooCommerce

Liens Rapides

  • Membres Modules
  • S’inscrire à la Newsletter
  • CV
  • Grégoire Noyelle
  • Mentions légales
  • Politique de confidentialité
  • Me contacter

Copyright © 2023 :: Création: Grégoire Noyelle :: Base: WordPress , Genesis Framework

Share this ArticleLike this article? Email it to a friend!

Email sent!