Problème pour lister pages enfant dans page parente

  • WordPress :4.7
  • Statut : hors support
2 sujets de 1 à 2 (sur un total de 2)
  • Auteur
    Messages
  • #1648578

    dohko2a
    Participant
    Initié WordPress
    1 contributions

    Bonjour,

    Ma configuration WP actuelle

    • Version de PHP/MySQL : 5.6/5.5
    • Thème utilisé : Hosted
    • Extensions en place : visual composer, yoast seo, tablepress, slider revolution, multi rating pro, contact form 7, duplicate post, better font awesome, cm tooltip glossary.
    • Nom de l’hébergeur : Gandi
    • Adresse du site : –

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

    J’ai mis en place le code ci-dessous dans le functions.php de mon thème enfant, pour pouvoir afficher la liste des pages enfant (avec thumbnail) d’une page parente. Un shortcode me permet d’afficher cela dans la page parente de mon choix.

    Cependant, ce code me ressort un ERROR 500 et je ne vois pas de quoi ça vient.

    Pouvez-vous m’aider à déceler le problème présent dans le code ci-dessous svp ?
    Merci d’avance 🙂

    Le code :

    <?php
    /**
     * Child-Theme functions and definitions
     */
    
    global $post;
    $child_pages_query_args = array(
        'post_type'   => 'page',
        'post_parent' => $post->ID,
        'orderby'     => 'date DESC'
    );
     
    $child_pages = new WP_Query( $child_pages_query_args );
    
    while ( $child_pages->have_posts() ) : $child_pages->the_post();
       the_post_thumbnail('thumbnail'); //lists thumbnails
       the_title(); // shows titles
       the_permalink(); //link to the current page
     
    wp_reset_postdata(); //remember to reset data
    
    function my_function() {
         
    global $post;
    $child_pages_query_args = array(
        'post_type'   => 'page',
        'post_parent' => $post->ID,
        'orderby'     => 'date DESC'
    );
     
    $child_pages = new WP_Query( $child_pages_query_args );
     
    if ( $child_pages->have_posts() ) :
    ?>
    <ul class="child_page_row">
    <?php 
    while ( $child_pages->have_posts() ) : $child_pages->the_post();
        ?>
        <li><a href="<?php the_permalink(); ?>">
        <?php if(has_post_thumbnail()): ?>
            <div class="child_page_thumb">
                <?php the_post_thumbnail(array(240, 240)); ?>
            </div>
        <?php endif; ?>
            <div class="child_page_name">
                <?php the_title(); ?>
            </div>
            <?php if(has_post_custom_meta('Desc')) : ?>
                <div class="child_page_desc">
                    <?php echo get_post_meta($post->ID, 'Desc', true); ?>
                </div>
            <?php endif; ?>
            <div class="child_page_author">
                <a href="<?php echo get_author_posts_url( get_the_author_meta( 'ID' ) ); ?>">@ <?php the_author(); ?></a>
            </div>
        </a></li>
    <?php
    endwhile; 
    ?>
    </ul>
    <?php    
    endif;
     
    wp_reset_postdata();
    <?php     
    }
    
    add_shortcode('show_child_pages', 'my_function');

    • Ce sujet a été modifié le il y a 4 mois et 3 semaines par  dohko2a.
    #1762521

    Flobogo
    Modérateur
    Maître WordPress
    13753 contributions

    Bonjour,

    Je ne suis pas codeuse, mais je bidouille un peu, et je vois quelques erreurs :

    • les lignes 6 à 13 ne servent à rien, elles sont répétées en-dessous et les lignes 15 à 20 font également doublon avec ce qui est plus bas.
    • sauf erreur de ma part,   » $posts->ID  »  sert à appeler la page en cours. Vous n’obtiendrez pas les enfants de cette page. Et vous ne pourrez pas placer le shortcode n’importe où.
2 sujets de 1 à 2 (sur un total de 2)
  • Vous devez être connecté pour répondre à ce sujet.