[Résolu] Pages hors ligne: menu dynamique (Créer un compte)

  • WordPress :6.4
  • Statut : résolu
  • Ce sujet contient 25 réponses, 2 participants et a été mis à jour pour la dernière fois par ferman, le il y a 1 mois.
15 sujets de 1 à 15 (sur un total de 26)
  • Auteur
    Messages
  • #2474682
    lfruchter16
    Participant
    Initié WordPress
    18 contributions

    Bonjour,

    Ma configuration WP actuelle

    • Version de PHP/MySQL :
    • Thème utilisé : Twenty Seventeen
    • Extensions en place :
    • Nom de l’hébergeur : LWS
    • Adresse du site : ajmphoto.fr

    Problème(s) rencontré(s) :  Bonjour,
    Notre site comporte des pages perso gérées par nos membres (ici dans https://ajmphoto.fr/galerie) qui les mettent parfois hors ligne pour les travailler. Existe-t-il un moyen pour que ces pages hors ligne disparaissent du menu automatiquement, afin d’éviter que les visiteurs tombent sur un message d’erreur ? (je devrais peut-être poser la question dans la section plugin ?
    merci

    #2474689
    ferman
    Participant
    Maître WordPress
    7065 contributions

    Bonjour,

    Avez-vous beaucoup de membres possédant une page perso et susceptibles de la mettre hors ligne (en brouillon)? Il y a des extensions permettant d’enlever de manière conditionnelle un ou plusieurs éléments du menu mais je n’ai pas vu la condition  « si l’article est un brouillon ». Si vous êtes intéressé, je pense que c’est possible avec quelques lignes de code (PHP).

    #2474762
    lfruchter16
    Participant
    Initié WordPress
    18 contributions

    Bonjour,

    Nous avons une trentaine de pages qui sont susceptibles d’être en brouillon et ne devraient pas apparaître dans le menu.

    #2474763
    ferman
    Participant
    Maître WordPress
    7065 contributions

    Bonjour,

    Essayez ce code (à coller/copier dans le fichier functions.php d’un thème enfant. Si vous n’avez pas de thème enfant, vous pouvez en créer un en 5 minutes avec cette extension. Si vous ne voulez pas de thème enfant, vous pouvez utiliser une extension telle que « code snippets »

     

    function enlever_du_menu_si_brouillon($items) {
    $getdrafts = get_posts (['post_type' => 'page',
    'post_status' => 'draft'
    ]);
    $getdrafts_title = (wp_list_pluck( $getdrafts, 'post_title' ));

    foreach ($items as $key => $item) {
    if (in_array($item->title , $getdrafts_title)) {
    unset($items[$key]);
    }
    }
    return $items;
    }
    add_filter('wp_nav_menu_objects', 'enlever_du_menu_si_brouillon');

    #2474893
    lfruchter16
    Participant
    Initié WordPress
    18 contributions

    Je l’ai installé avec Code Snippets: c’est génial !

    merci

    #2475052
    lfruchter16
    Participant
    Initié WordPress
    18 contributions

    Bonjour,
    Je déterre ce sujet car un problème apparaît. Lorsque je mets en mode brouillon une page qui s’appelait …/titre-de-la-page, elle ne disparaît pas et apparaît désormais en …/page-ID . Elle reste visible avec cette URL sur le site.

    #2475064
    ferman
    Participant
    Maître WordPress
    7065 contributions

    Bonjour,

    Quand vous ajoutez le code, la page brouillon disparaît du menu mais ne disparaît pas du site pour autant (heureusement autrement elle serait supprimée). Vous pouvez donc la trouver si vous connaissez son url.  De plus, les pages brouillon apparaissent sous la forme « ?p=1234 ». Apparemment c’est le comportement normal (je l’ignorais). Ou alors je n’ai pas bien compris le problème?

    #2475065
    lfruchter16
    Participant
    Initié WordPress
    18 contributions

    Bonjour,

    D’accord pour l’explication de la page qui subsiste avec page_id en mode brouillon, mais du coup le menu tente d’afficher cette url, d’où message d’erreur. On dirait que le code a bien supprimé la page avec le nom du post, mais que celle-ci réapparait avec le nom du brouillon dans le menu (d’où message d’erreur ?

     

    #2475067
    ferman
    Participant
    Maître WordPress
    7065 contributions

    Bizarre, je n’observe pas ce comportement. Si je passe une page du menu en brouillon, elle reste au menu avec le statut 404. Si j’active le code elle disparaît du menu et ne cherche  pas à réapparaître. Pouvez-vous recréer le problème pour une page et mettre en ligne pour que je puisse essayer de voir ce qui se passe?

    #2475068
    lfruchter16
    Participant
    Initié WordPress
    18 contributions

    La page ajmphoto.fr/galerie/luc-fruchter est en mode brouillon et apparait sous https://ajmphoto.fr/?page_id=48 en erreur (cf copie d’écran). Le code est activé.

    Fichiers joints :
    Vous devez être connecté pour voir les fichiers joints.
    #2475071
    lfruchter16
    Participant
    Initié WordPress
    18 contributions

    capture…

    Fichiers joints :
    Vous devez être connecté pour voir les fichiers joints.
    #2475073
    ferman
    Participant
    Maître WordPress
    7065 contributions

    Bon, pour être sûr, je viens d’essayer avec twenty seventeen et code snippets (auparavant j’avais utilisé un thème enfant de mon thème) et le résultat est le même. Après avoir introduit le code dans code snippes, vous avez bien enregistré les changements?

    #2475074
    lfruchter16
    Participant
    Initié WordPress
    18 contributions

    Voici le menu tel qu’il apparaît dans WP/apparence/menu et celui du site en ligne.

    Comme on peut le voir, le code a bien supprimé certaines pages, mais à la suite de je ne sais quel changement d’URL, elle réapparaissent même en brouillon. Je peux vous envoyer un ID admin du site en privé, si vous voulez.

    Fichiers joints :
    Vous devez être connecté pour voir les fichiers joints.
    #2475105
    ferman
    Participant
    Maître WordPress
    7065 contributions

    Ce que vous montrez sur la copie d’écran « capture-2 » est ce que l’on voit quand le code n’est pas activé. Si vous voyez ça après avoir mis le code, c’est qu’il n’a pas fonctionné et je ne comprends pas pourquoi. J’essaierai de voir ça demain. Pour le moment c’est mystérieux.

    #2475112
    lfruchter16
    Participant
    Initié WordPress
    18 contributions

    Je ne crois pas. Ci-jointe la comparaison entre site en ligne et menu de WP: on voit bien que certaines pages ont été éliminées du menu, preuve que le code est bien actif. Les pages fautives sont toutes chargées avec l’URL page_ID.

    Fichiers joints :
    Vous devez être connecté pour voir les fichiers joints.
15 sujets de 1 à 15 (sur un total de 26)
  • Vous devez être connecté pour répondre à ce sujet.