Type de publication personnalisé Lien suivant / précédent?

12

J'ai un type de message personnalisé appelé portfolio. J'ai besoin d'un lien précédent / suivant SANS plugin. Quelqu'un a une solution?

Exemple de publication: http://themeforward.com/demo2/archives/portfolio/boat

<?php get_header(); ?>

<!-- Begin wrap -->
<div class="clear">
<div id="full_container">
<div id="content2">
<div id="content">

<!-- Grab posts -->
<?php if (have_posts()) : ?><?php while (have_posts()) : the_post(); ?>

<!-- Post title -->
<h1>
    <?php the_title(); ?>
</h1>

<!-- The post -->
<?php the_content(); ?>

<!-- Tags -->
<h3 class="tags">
    <?php the_tags('Tags ',' / ','<br />'); ?>
</h3>

<!-- End wrap -->
</div>

<!-- Next/Previous Posts -->
<div class="mp_archive2">
<div id="more_posts">
    <div class="oe">
        <?php previous_post_link('%link', '« Previous post', TRUE); ?>
    </div>

    <div class="re">
        <?php next_post_link('%link', 'Next post »', TRUE); ?>
    </div>
</div>
</div>

<?php endwhile; else: ?>
<p>No matching entries found.</p>
<?php endif; ?>
</div>
</div>
</div>
</div>
<?php get_footer(); ?>
AndrettiMilas
la source
3
Pourquoi l'aversion pour les plugins?
chrisguitarguy
Parce que s'il s'agit d'un plugin, il n'est pas intégré au thème.
AndrettiMilas
4
@Lucas Wynne Si vous voulez qu'il soit intégré, copiez / collez du code de plugin dans votre fichier themes functions.php.
kaiser
2
@kaiser en supposant bien sûr que vous respectiez les conditions de licence et IP, ce qui n'est pas si simple si vous produisez un thème à vendre.
Phill Healey

Réponses:

14

Si vous avez besoin de liens suivant / précédent pour des articles uniques, il y a la next_post_linkfonction intégrée et la correspondance previous_post_link, qui devraient probablement être utilisées dans la boucle.

Pour les archives, utilisez next_posts_linket previous_posts_link.

Tous ces éléments fonctionneront correctement avec des types de publication personnalisés.

chrisguitarguy
la source
Ils ne fonctionnent pas dans mon thème.
AndrettiMilas
3
D'accord. Eh bien, sans voir votre code, il est difficile de dire pourquoi. Y a-t-il des erreurs ou des avertissements PHP? Avez-vous plusieurs articles insérés pour les fonctions pour lesquelles récupérer le lien?
chrisguitarguy
J'ai mis à jour ma question ci-dessus.
AndrettiMilas
Essayez-le avec le troisième argument VRAI et faites-le nous savoir.
chrisguitarguy
Troisième vrai argument?
AndrettiMilas
14
<?php
$prev_post = get_previous_post();
if($prev_post) {
   $prev_title = strip_tags(str_replace('"', '', $prev_post->post_title));
   echo "\t" . '<a rel="prev" href="' . get_permalink($prev_post->ID) . '" title="' . $prev_title. '" class=" ">&laquo; Previous post<br /><strong>&quot;'. $prev_title . '&quot;</strong></a>' . "\n";
}

$next_post = get_next_post();
if($next_post) {
   $next_title = strip_tags(str_replace('"', '', $next_post->post_title));
   echo "\t" . '<a rel="next" href="' . get_permalink($next_post->ID) . '" title="' . $next_title. '" class=" ">Next post &raquo;<br /><strong>&quot;'. $next_title . '&quot;</strong></a>' . "\n";
}
?>
user25225
la source
3
Veuillez formater vos codes / réponses et ajouter des explications.
Maruti Mohanty
1
Quoi qu'il en soit, je peux limiter cela à la taxonomie du CPT?
gil hamer