Création d’un lien entre 2 CPT juste avec un seul CPT (Créer un compte)

  • WordPress :5.8
  • Statut : non résolu
Affichage de 1 message (sur 1 au total)
  • Auteur
    Messages
  • #2398607
    d3LTa7
    Participant
    Initié WordPress
    7 contributions

    Bonjour,

    Ma configuration WP actuelle

    • Version de PHP/MySQL : 7.4.27
    • Thème utilisé : Personnalisé
    • Extensions en place : ACF/Metaslider/Post Type Order/Ultimate Member/Query Monitor
    • Nom de l’hébergeur : Localhost
    • Adresse du site : Localhost

    Problème(s) rencontré(s) :

    Bonjour,
    Je cherche à créer un lien entre 2 custom post type mais seulement en configurant un seul d’entre eux.
    Dans la hiérarchie de mon site j’ai une page parent et une page enfant. Les 2 pages sont des single (single-ent.php –> parent  single.php –> enfant)

    Le CPT parent (single-ent.php)  est assez basique :

        $arg = [
            'public'=> true,
            'label'=> 'ENTREPRISE',
            'show_in_rest' => true,
            'supports'=>array('title', 'thumbnail', 'excerpt'),
            'has_archive'=>true,
            'menu_icon'=> 'dashicons-welcome-view-site'
        ];
        register_post_type('ent', $arg);
    CPT ENTREPRISE 'ent'

    Avec ce CPT je peux donc créer des sous menu avec juste 1 champ résumé

    Le CPT enfant (single.php) est un peu plus complexe

        $arg = [
            'public'=> true,
            'label'=> 'redaction',
            'show_in_rest' => true,
            'supports'=>array('title', 'thumbnail', 'excerpt'),
            'has_archive'=>true,
            'menu_icon'=> 'dashicons-book-alt'
        ];
        register_post_type('redaction', $arg);
    CPT redaction 'redaction'

    Grace à celui-ci, l’utilisateur peut donc créer un article qui est une page en elle même. Des champs ACF sont lié à ce CPT, dont un champ relationnel.

    Ce que je cherche à faire : J’aimerais que l’utilisateur dans le Back Office n’utilise que le CPT redaction pour créer est lier son article, c’est à dire qu’avec certains champs relationnel, son article sera bien l’enfant d’un des sous menu , mais en plus que le sous menu créer un lien automatiquement vers cet article.

    J’ai déjà fait pas mal de recherche et d’essais et je pense ne pas en être loin

    single-ent.php :

    <main id="" class="">
        <div class="">
            <h1 class="">single ENT</h1>
            <?php
                if(have_posts()){
                    while(have_posts()){
                        the_post();
                        the_title();
                        the_excerpt();
                        $links = get_posts(array(
                            'post_type' => 'redaction',
                            'meta_query'=> array(
                                array(
                                    'key'       =>'relation',
                                    'value'     => '"' . get_the_ID() . '"',
                                    'compare'   =>'LIKE'
                                )
                            ),
                        ));
                        
                        if($links){
                            foreach($links as $link){                            
                                echo '<a href="' . get_permalink() . '">' . get_the_title() . '</a>';
                            }
                            wp_reset_postdata();
                        }
                    };
                };
            ?>    
        </div>
    </main>
    single-ent

    single.php

    <main id="" class="">
        <div class="">
            <h1 class="">single</h1>
            <?php
                if(have_posts()){
                    while(have_posts()){
                        the_post();
                        the_title();
                        $redac = get_field('texte');
                        if($redac){
                            echo $redac;
                        };
                        $img = get_field('img');
                        if($img){
                            echo wp_get_attachment_image($img, 'article');
                        }
                        $lien = get_field('relation');
                        if($lien){?>
                            <?php foreach ($lien as $liens):
                                $name = get_the_title($liens->ID);
                                $link = get_permalink($liens->ID);?>
                                <a href="<?php echo $link;?>">
                                    <?php echo $name; ?>
                                </a>
                            <?php endforeach;
                        }
                    };
                };
            ?>    
        </div>
    </main>
    single.php

    Le souci c’est que dans mon cas actuel, le lien créer dans la page parent est un lien vers lui même mais pas vers l’enfant :/ En gros, je demande au parent, par l’intermédiaire de l’enfant de creer un lien vers le parent… Et c’est pas vraiment ça que je veux…
    Pas simple à expliquer mais je pense que les images jointes à ce message peuvent éclairer ma question à mon problème.
    Le premier fichier joint est un schéma de la hiérarchie de 3 niveaux archive-ent.php>single-ent.php>single.php .
    L’article rédigé par l’utilisateur est « l’équipe ». Dans le BO, l’utilisateur va donc rédiger son article et configurer son parent grâce au champ relation, il choisira « Bureau » . Grace à cela, quand un utilisateur sera sur la page « Bureau » il verra le lien de l’article « L’équipe » et quand il sera sur la page de cet article il pourra retrouver un lien vers « Bureau »

    Voilà j’espère avoir été le plus clair possible 🙂 Merci d’avance

    PS : La limite des fichiers joints est limité à 4, mais j’ai d’autres captures d’écran si besoin !

    • Ce sujet a été modifié le il y a 8 mois et 2 semaines par d3LTa7.
    Fichiers joints :
    Vous devez être connecté pour voir les fichiers joints.
Affichage de 1 message (sur 1 au total)
  • Vous devez être connecté pour répondre à ce sujet.