Balises de modèle conditionnelles pour le thème WordPress

Publié par Jean-Michel le

Je ne parviens pas à créer un modèle qui affiche du contenu de manière conditionnelle. Ceci est pour un blog qui propose des articles et des tutoriels. Les didacticiels commenceront par une boîte contenant des informations supplémentaires sur le didacticiel. Les informations supplémentaires sont saisies dans des champs personnalisés.

Dans mon fichier « single.php », j’ai le code suivant :

<section class="entry-content group">
    <?php if ( in_category('tutorials') ) { echo '
        <div class="tutorial-info-box group">
            <h5>About This Tutorial</h5>
            <ul class="tutorial-stats">
                <li> <span> Difficulty: </span> </li>
                <li> <span> Prerequisites: </span> </li>
                <li> <span> Time required: </span> </li>
                <li> <span> Will improve your knowledge of: </span> </li>
            </ul>
        </div>
    '; } ?>
    <?php the_content(); ?>
</section>

Ce qui précède fonctionne bien pour afficher cette boîte uniquement sur les publications de la catégorie « tutoriels ». Je rencontre des problèmes lorsque j’essaie d’inclure les données des champs personnalisés comme suit :

<section class="entry-content group">
    <?php if ( in_category('tutorials') ) { echo '
        <div class="tutorial-info-box group">
            <h5>About This Tutorial</h5>
            <ul class="tutorial-stats">
                <li>
                    <span> Difficulty: </span>
                    <?php get_post_meta( $post->ID, 'difficulty', true ); ?>
                </li>
                <li>
                    <span> Prerequisites: </span>
                    <?php get_post_meta( $post->ID, 'prerequisites', true ); ?>
                </li>
                <li>
                    <span> Time required: </span>
                    <?php get_post_meta( $post->ID, 'time', true ); ?>
                </li>
                <li>
                    <span> Will improve your knowledge of: </span>
                    <?php get_post_meta( $post->ID, 'improve', true ); ?>
                </li>
            </ul>
        </div>
    '; } ?>
    <?php the_content(); ?>
</section>

Je me retrouve avec juste un écran blanc vide. Je suppose que c’est une sorte d’erreur de syntaxe, mais je ne peux pas comprendre ce que c’est. Quelqu’un peut-il aider? Merci d’avance!!!

Solution n°1 trouvée

Votre y compris une ouverture <?phpdans une chaîne. Corrigez-le en :

<section class="entry-content group">
    <?php if ( in_category('tutorials') ): ?>
        <div class="tutorial-info-box group">
            <h5>About This Tutorial</h5>
            <ul class="tutorial-stats">
                <li>
                    <span> Difficulty: </span>
                    <?php echo  get_post_meta( $post->ID, 'difficulty', true ); ?>
                </li>
                <li>
                    <span> Prerequisites: </span>
                    <?php echo get_post_meta( $post->ID, 'prerequisites', true ); ?>
                </li>
                <li>
                    <span> Time required: </span>
                    <?php echo get_post_meta( $post->ID, 'time', true ); ?>
                </li>
                <li>
                    <span> Will improve your knowledge of: </span>
                    <?php echo get_post_meta( $post->ID, 'improve', true ); ?>
                </li>
            </ul>
        </div>
    <?php endif; ?>
    <?php the_content(); ?>
</section>
Catégories : Wordpress

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *