IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WordPress PHP Discussion :

Formatage de la date en fonction de la Langue


Sujet :

WordPress PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2017
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mars 2017
    Messages : 142
    Par défaut Formatage de la date en fonction de la Langue
    Bonjour

    Sur un site wordpress utilisant Divi comme thème, je voudrais changer la date de création d'un article ( qui est la date qui s'affiche par défaut ) par la date de mise à jour de l'article.

    J'ai trouvé le code PHP qui permet cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function et_last_modified_date_blog( $the_date ) {
        if ( 'post' === get_post_type() ) {
            $the_time = get_post_time( 'His' );
            $the_modified = get_post_modified_time( 'His' );
     
            $last_modified =  sprintf( __( '%s', 'Divi' ), esc_html( get_post_modified_time( 'j M Y' ) ) );
            $date = $the_modified !== $the_time ? $last_modified : get_post_time( 'M j, Y' );
     
            return $date;
        }
    }
    add_action( 'get_the_date', 'et_last_modified_date_blog' );
    add_action( 'get_the_time', 'et_last_modified_date_blog' );
    Le problème c'est que j'aimerais afficher cette date différemment selon la langue de la page.
    Comment pourrais-je coder cela ?
    en d'autres termes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    function et_last_modified_date_blog( $the_date ) {
        if ( 'post' === get_post_type() ) {
            $the_time = get_post_time( 'His' );
            $the_modified = get_post_modified_time( 'His' );
     Si langue française
            $last_modified =  sprintf( __( '%s', 'Divi' ), esc_html( get_post_modified_time( 'j M Y' ) ) );
            $date = $the_modified !== $the_time ? $last_modified : get_post_time( 'j M Y' ' );
     Si langue anglaise
             $last_modified =  sprintf( __( '%s', 'Divi' ), esc_html( get_post_modified_time( 'M j, Y' ) ) );
            $date = $the_modified !== $the_time ? $last_modified : get_post_time( 'M j, Y' );
    
            return $date;
        }
    }
    add_action( 'get_the_date', 'et_last_modified_date_blog' );
    add_action( 'get_the_time', 'et_last_modified_date_blog' );
    De la même façon les pages affichant les articles sont créées via un template qui affiche bien la dernière date de mise à jour de l'article.
    Exemple : https://guideyourtrip.com/blog-voyag.../visite-naples

    Il faudrait afficher une date d'un formatage différent pour la version anglaise.
    Le code est le suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p class="modified_at"><?php the_modified_time('d.m.Y'); ?></p>
    Il faudrait coder de la façon suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Si en langue française
    <p class="modified_at"><?php the_modified_time('d.m.Y'); ?></p>
    Si en langue anglaise
    <p class="modified_at"><?php the_modified_time('m.d.Y'); ?></p>
    Merci pour votre aide

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 701
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 701
    Par défaut
    la 1re étape est de créer un thème enfant pour ne pas perdre les modifications à la prochaine mise à jour du thème
    https://codex.wordpress.org/fr:Th%C3%A8mes_Enfant

    ensuite pour utiliser des chaines de caractères différentes en fonction de la langue, vous pouvez les mettre dans des fichiers de langues comme expliqué là :
    https://developer.wordpress.org/apis.../localization/

  3. #3
    Membre confirmé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2017
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mars 2017
    Messages : 142
    Par défaut
    Merci pour votre réponse

    J'ai déjà un thème enfant
    Ce que je recherche ce n'est pas une uniquement une chaine de caractère différente selon la langue mais également un formatage de la date différent.

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 701
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 701
    Par défaut
    Citation Envoyé par Gilles_75 Voir le message
    Ce que je recherche ce n'est pas une uniquement une chaine de caractère différente selon la langue mais également un formatage de la date différent.
    et le formatage est défini comment ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2017
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mars 2017
    Messages : 142
    Par défaut
    Finalement j'ai trouvé une solution en codant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    $currentlang = get_bloginfo('language');
    ?>
     
    <p class="modified_at">
    <?php 
       if($currentlang=="fr-FR"):
            the_modified_time('d.m.Y');
       elseif ($currentlang=="en-GB"):
            the_modified_time('m.d.Y');
       endif;
    ?>
    </p>
    Merci pour votre aide

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/11/2006, 16h33
  2. [Dates] formatage d'une date
    Par illegalsene dans le forum Langage
    Réponses: 4
    Dernier message: 02/02/2006, 18h10
  3. Réponses: 10
    Dernier message: 09/01/2006, 18h39
  4. Problème de date dans fonction utlisateur
    Par lutin2003 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/04/2005, 16h25
  5. Obtenir des dates en fonction du n° de la semaine
    Par coeur74 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 10/02/2005, 13h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo