7) Page single.php

La page single.php va permettre d’afficher un post de manière complète, avec ses commentaires et un formulaire de forum.

Précédent | 7/20 | Suivant

Hierarchie des templates

On peut dans un thème wordpress utiliser le seul fichier "index.php", qui se charge d’afficher tous les contenus demandés : la page d’entrée, chaque page et chaque post, le résultat d’une recherche, etc. Mais si on veut pousser l’affichage un peu plus loin, on créera plusieurs templates. Voir la liste des templates et leur hierarchie ici, ou sur l’image associée à cet article, en taille complète, ici.

Créer le fichier single.php

Le fichier single est une déclinaison du fichier index.php. Le voici

<?php get_header(); ?> <!-- importation du header -->

<div id="corps">
<?php if(have_posts()) : ?><?php while(have_posts()) : the_post(); ?>
<div class="post" id="post-<?php the_ID(); ?>">
<h2><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>
<p class="postmetadata">
   <?php the_time('j F Y') ?> par <?php the_author() ?> |
   Cat&eacute;gorie: <?php the_category(', ') ?> |
   <?php edit_post_link('Editer', ' | ', ''); ?>
</p>
<div class="post_content">
<?php the_content(); ?>
</div>
</div>
<div class="post_commentaires">
<?php comments_template(); ?>
</div>
<?php endwhile; ?>
<!-- lien vers post suivant -->
<?php previous_post_link() ?> <?php next_post_link() ?>
<?php endif; ?>
</div>

<!-- ici on place la sidebar -->
<?php get_sidebar(); ?>

<!-- ici on place le footer -->
<?php get_footer(); ?>
</body>
</html>

Externaliser le fichier de commentaires

Pour plus de facilités, nous allons externaliser le fichier de commentaire, car il est long et technique. Le plus simple est de faire dans votre thème une copie du fichier "comments.php" du thème par défaut, ou de copier le code ci-dessous dans un fichier que vous nommez "comments.php" :

<?php // Do not delete these lines
if ('comments.php' == basename($_SERVER['SCRIPT_FILENAME'])) die ('Ne pas t&eacute;l&eacute;charger cette page directement, merci !');
if (!empty($post->post_password)) { // if there's a password
        if ($_COOKIE['wp-postpass_' . COOKIEHASH] != $post->post_password) {  // and it doesn't match the cookie
?>

<h2><?php _e('Prot&eacute;g&eacute; par mot de passe'); ?></h2>
<p><?php _e('Entrer le mot de passe pour voir les commentaires'); ?></p>

<?php return;
        }
}

        /* This variable is for alternating comment background */

$oddcomment = 'alt';

?>

<!-- You can start editing here. -->

<div class="cadre_commentaires">
<?php if ($comments) : ?>
        <h3 id="comments"><?php comments_number('Pas de commentaire', 'Un commentaire', '% commentaires' );?> pour “<?php the_title(); ?>”</h3>

<ol class="commentlist">
<?php foreach ($comments as $comment) : ?>

        <li class="<?php echo $oddcomment; ?>" id="comment-<?php comment_ID() ?>">

<div class="commentmetadata">
<strong><?php comment_author_link() ?></strong>, <?php _e('le'); ?> <a href="#comment-<?php comment_ID() ?>" title=""><?php comment_date('j F, Y') ?> <?php _e('&agrave;');?> <?php comment_time() ?></a> <?php _e('Said&#58;'); ?> <?php edit_comment_link('Edit Comment','',''); ?>
                <?php if ($comment->comment_approved == '0') : ?>
                <em><?php _e('Votre commentaire est en cours de mod&eacute;ration'); ?></em>
                <?php endif; ?>
</div>

<?php comment_text() ?>
        </li>

<?php /* Changes every other comment to a different class */
        if ('alt' == $oddcomment) $oddcomment = '';
        else $oddcomment = 'alt';
?>

<?php endforeach; /* end for each comment */ ?>
        </ol>

<?php else : // this is displayed if there are no comments so far ?>

<?php if ('open' == $post->comment_status) : ?>
        <!-- If comments are open, but there are no comments. -->
        <?php else : // comments are closed ?>

        <!-- If comments are closed. -->
<p class="nocomments">Les commentaires sont fermŽs !</p>

        <?php endif; ?>
<?php endif; ?>
</div>

<?php if ('open' == $post->comment_status) : ?>

                <h3 id="respond">Laissez un commentaire</h3>

<?php if ( get_option('comment_registration') && !$user_ID ) : ?>
<p>You must be <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?redirect_to=<?php the_permalink(); ?>">connect&eacute;</a> pour laisser un commentaire.</p>

<?php else : ?>

<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">
<?php if ( $user_ID ) : ?>

<p>Logged in as <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout" title="D&eacute;connect&eacute; de ce compte">D&eacute;connection &raquo;</a></p>

<?php else : ?>

<p><input type="text" name="author" id="author" value="<?php echo $comment_author; ?>" size="40" tabindex="1" />
<label for="author"><small>Nom <?php if ($req) echo "(requis)"; ?></small></label></p>

<p><input type="text" name="email" id="email" value="<?php echo $comment_author_email; ?>" size="40" tabindex="2" />
<label for="email"><small>email (ne sera pas publi&eacute;) <?php if ($req) echo "(requis)"; ?></small></label></p>

<p><input type="text" name="url" id="url" value="<?php echo $comment_author_url; ?>" size="40" tabindex="3" />
<label for="url"><small>Site Web</small></label></p>

<?php endif; ?>

<!--<p><small><strong>XHTML:</strong> <?php _e('Vous pouvez utiliser ces tags&#58;'); ?> <?php echo allowed_tags(); ?></small></p>-->

<p><textarea name="comment" id="comment" cols="60" rows="10" tabindex="4"></textarea></p>

<p><input name="submit" type="submit" id="submit" tabindex="5" value="Envoyer" />
<input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>" />
</p>

<?php do_action('comment_form', $post->ID); ?>

</form>

<?php endif; // If registration required and not logged in ?>

<?php endif; // if you delete this the sky will fall on your head ?>

Forum

  • rep tioswin par capcabowf , 7 février 2013

    desengaño destas illusiones, precio de la viagra en farmacias y socorrió la miseria de los frayles. il rapporte la plante de Lobel, cialis acheter Les électeurs verront à quel abîme de hontes, .