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 :

Définir des horaires pour faire apparaître/disparaître des posts wordpress.


Sujet :

WordPress PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Octobre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Octobre 2019
    Messages : 2
    Par défaut Définir des horaires pour faire apparaître/disparaître des posts wordpress.
    Bonjour à tous,

    Je suis à la rechercher d'un pluggin wordpress ou code php qui pourrait me permettre de faire apparaître ou disparaître une page ou un poste en fonction de l'heure ou du jour de la semaine.

    Après avoir effectué de nombreuses recherches en anglais et français je n'ai toujours pas de piste.

    Merci pour votre lumière.

  2. #2
    Membre Expert

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 583
    Par défaut
    Salut,

    Peut-être ici https://wordpress.org/plugins/search/post+status/
    Si tu ne trouve pas tu vas devoir créer un plugin avec un formulaire ou tu indiqueras le post en question et tes critères. Mais vue le temps de développement tu en a réellement l'utilité? Quels est ton niveau en wordpress/php?

  3. #3
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    Bonjour,

    D'un point de vue SEO ce n'est pas très bon ^^

    C'est un peu vague comme explication mais personnellement, je partirais sur un custom template avec un/des customs fields pour définir les heures visibles/non-visibles.
    Pour les custom fields, je te conseille Advanced Custom Fields qui permet de créer des custom fields rapidement et facilement.

    Si on partait sur 2 champs de type "date time" qui permettent de définir
    - la date & heure de début de visibilité (date_start)
    - la date & heure de fin de visibilité (date_end)

    Ca donnerait quelque chose comme :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $date_start = get_field('date_start');
    $date_end = get_field('date_end');
    $now = date('YmdHis'); // Le format est p-e à changer suivant la configuration des champs date_start & date_end, la valeur qu'ils retournent
     
    if($now >= $date_start && $now <= $date_end) {
        // J'affiche le contenu de ma page
    }

    Si par contre tu souhaites complètement bloquer l'accès à la page, il te faudra alors passer par un hook.
    Probablement "wp" ou "init" et rediriger vers la page d'accueil.
    Code php : 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
    function maybe_block_page_access()
    {
        $id_de_la_page_a_bloquer = 15;
        if (get_the_id() === $id_de_la_page_a_bloquer) {
            $date_start = get_field('date_start', $id_de_la_page_a_bloquer);
            $date_end = get_field('date_end', $id_de_la_page_a_bloquer);
            $now = date('YmdHis');
     
            if ($now >= $date_start && $now <= $date_end) {
                wp_safe_redirect(site_url(), 302);
                exit;
            }
        }
    }
     
    add_action('wp', 'maybe_block_page_access');

  4. #4
    Nouveau candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Octobre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Octobre 2019
    Messages : 2
    Par défaut
    Citation Envoyé par kevin254kl Voir le message
    Merci pour ton retour.

    Oui c'est assez important pour nous, et il vrai que ce n'est pas très courant comme utilisation. De ce fait il est très difficile de trouver des solutions sur le net.
    On va dire que j'ai un très bon niveau wordpress et un niveau suffisant CSS/HTML.
    Pour ce qu'il en est de PHP c'est plus de la "débrouille", faire des modifications avec l'existant, ça passe, mais développer sans aucun exemple, il faut l'avouer je me perds un peu.

    Sur un forum d'échange anglophone on m'a proposé ce type de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function blockAccessFromPost($post) {
      $post_id = $post->ID;
      $hours = intval(date('H'));
     
      if ($hours >= 9 && $hours < 20 && $post_id === 1123) {
        echo '';
        exit; // exit is required so no further code is executed.
      }
    }
    add_action('the_post', 'blockAccessFromPost');
    Donc après des tests, j'ai changé la timezone de mon serveur, le post disparaît bien.
    En revanche cela crée de gros bugs sur le site, la moitié des posts disparaissent, le footer et les widgets aussi...

    Citation Envoyé par darkstar123456 Voir le message
    Hello darkstar123456,

    Oui, il est sûr que d'un point de vue SEO ce n'est pas le top mais ce type de page "produit" doit-etre visible que sur une certaine plage horaire et que d'autres apparaissent sur l'autre plage horaire.

    Tes exemples de code ont l'air intéressants.

    Tu me conseilles d'intégrer le code directement dans functions.php ?
    Si par exemple je veux qu'une page en question soit visible de 10h à 20h 7/7jours je renseigne où et sous quel forme dans ton code ces horaires ?

    Merci pour ton aide

  5. #5
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    Hello,

    En reprenant mon code précédant, et en plaçant ce bout de code dans functions.php (désolé, j'avais oublié de le préciser mais théoriquement, tout va toujours là-dedans ^^)

    Code php : 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
    function maybe_block_page_access()
    {
        $id_de_la_page_a_bloquer = 15; // Attention, il faut changer cet ID par celui de la page à bloquer !
        if (get_the_id() === $id_de_la_page_a_bloquer) {
            // G = Heure, au format 24h, sans les zéros initiaux
            // i = Minutes avec les zéros initiaux
            $now = date('Gi'); 
             // S'il est moins de 10:00, ou plus de 20:00, on redirect vers la homepage
            if ($now < 1000 || $now > 2000) {
                wp_safe_redirect(site_url(), 302);
                exit;
            }
        }
    }
     
    add_action('wp', 'maybe_block_page_access');

Discussions similaires

  1. [XL-2013] Faire apparaître/disparaître plages de cellule sous condition
    Par tom12345 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/03/2018, 09h10
  2. [XL-2013] Formule SI, faire apparaître confirmation de poste
    Par YoannRbt dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/07/2016, 15h51
  3. css pour faire apparaître image flash à l'impression ?
    Par boobz dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 15/10/2008, 12h09
  4. supprimer un clic pour faire apparaître une sous-rubrique
    Par laurentSc dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/04/2008, 08h34

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