web-dev-qa-db-fra.com

post précédent/suivant avec vignette

J'ai une autre question concernant le post suivant/précédent.

En ce moment, je travaille sur notre portefeuille avec plusieurs éléments. Chaque article est un article avec un titre, une catégorie et une image sélectionnée. Lors de la visualisation d'un élément, il y a 4 messages suivants/précédents.

Comment afficher les 2 suivants et les 2 précédents? Et si le suivant ou le précédent n'existe pas, comment puis-je afficher uniquement les 4 messages précédents ou les 4 suivants (au premier et au dernier message)?

J'utilise actuellement Twitter Bootstrap CSS/HTML:

<div class="row-fluid tab-footer">

        <div class="span3">



                      <div class="row-fluid none">
                           <div class="span3">THUMBNAIL</div>

                           <div class="span9" ><h2>TITLE</h2>

                           <p><?php
                                foreach((get_the_category()) as $childcat) {
                                if (cat_is_ancestor_of(3, $childcat)) {
                                echo '<a href="'.get_category_link($childcat->cat_ID).'">';
                                 echo $childcat->cat_name . '</a> ';
                                }}
                                ?>
                            </p> 
                      </div>

        </div> 

        <div class="span3 hidden-phone">

                  <div class="row-fluid none">
                       <div class="span3">THUMBNAIL</div>

                       <div class="span9" ><h2>TITLE</h2>

                       <p>CATEGORY</p> 
                  </div>
        </div>

        <div class="span3 hidden-phone">
                  <div class="row-fluid none">
                       <div class="span3">THUMBNAIL</div>

                       <div class="span9" ><h2>TITLE</h2>

                       <p>CATEGORY</p> 
                  </div>
        </div>

        <div class="span3">   
                  <div class="row-fluid none">
                       <div class="span3">THUMBNAIL</div>

                       <div class="span9" ><h2>TITLE</h2>

                       <p>CATEGORY</p> 
                  </div>
        </div>

</div>
2
rwzdoorn

Vous devez envoyer une requête personnalisée pour obtenir une liste de publications. Dans cet exemple, nous utilisons un type de message personnalisé "projet" et une taxonomie personnalisée "sphère" et nous obtenons un projet suivant dans la sphère actuelle. Dans votre cas d'utilisation, vous pouvez augmenter le nombre de posts de post_per_page à 4.

<?php 
//remember the id and menu_order from current post 
$id=get_the_ID(); 
global $haet_post_order; 
$haet_post_order=$post->menu_order;

//There is only one sphere per project in this example
$custom_terms = get_the_terms($id, 'sphere');
foreach ($custom_terms AS $term) {
    $sphere=$term->slug;
}

function haet_filter_next_post( $where = '' ) {
    global $haet_post_order;
    $where .= ' AND menu_order>'.$haet_post_order;
    return $where;
}

add_filter( 'posts_where', 'haet_filter_next_post' );
$loop = new WP_Query( array( 'post_type' => 'project', 'posts_per_page' => 1,'orderby' => 'menu_order','order' => 'ASC','sphere'=>$sphere ) );
remove_filter( 'posts_where', 'haet_filter_next_post' );

//if there is no next post use the first one
if( !$loop->have_posts() ){
    $loop = new WP_Query( array( 'post_type' => 'project', 'posts_per_page' => 1,'orderby' => 'menu_order','order' => 'ASC','sphere'=>$sphere ) );
}

while ( $loop->have_posts() ) : $loop->the_post();
// place you code here
?>

<?php  endwhile;  ?>

Dans la boucle while, vous pouvez obtenir la vignette avec get_the_post_thumbnail () . Vous pouvez trouver quelques lignes de description supplémentaires dans cet article de blog

1
Hannes