Wordpress如何从同一分类中提供上一个和下一个帖子链接?

时间:2014-10-08 10:48:27

标签: php wordpress post permalinks testimonials

我有帖子类型推荐。

我通过特定的分类法列出了推荐书,并阅读了更多链接。

当用户点击阅读get_permalink( $post )的更多链接,然后重定向到特定页面,那么我想显示当前帖子的相同分类的上一个和下一个帖子链接?

如果您需要更多信息,请告知我们。

我添加了true作为它的第三个元素,但是没有工作

previous_post_link( '%link', '<span class="meta-nav">' . _x( '&larr;', 'Previous post link', 'twentytwelve' ) . '</span> %title' ,true );

2 个答案:

答案 0 :(得分:2)

请参阅此Link

我找到了解决方案如下

转到你的single.php文件

// Only for Testimonial

if(get_post_type( $post )=="wpm-testimonial")
{

    $terms = array_shift(get_the_terms($post->ID, 'wpm-testimonial-category'));


    // get_posts in same custom taxonomy
    $postlist_args = array(
        'posts_per_page'  => -1,
        'orderby'         => 'ID title',
        'order'           => 'ASC',
        'post_type'       => 'wpm-testimonial',
        $terms->taxonomy  => $terms->slug
    );

    $postlist = get_posts( $postlist_args );

    // get ids of posts retrieved from get_posts
    $ids = array();
    foreach ($postlist as $thepost) {
        $ids[] = $thepost->ID;
    }

    // get and echo previous and next post in the same taxonomy
    $thisindex  = array_search($post->ID, $ids);
    $previd     = $ids[$thisindex-1];
    $nextid     = $ids[$thisindex+1];

    ?>
    <nav class="nav-single">
    <?php

        if ( !empty($nextid) ) {

            echo '<span class="nav-previous"><a rel="next" href="' . get_permalink($nextid). '">Previous</a></span>';

        }

        if ( !empty($previd) ) {

    echo '<span class="nav-next"><a rel="prev" href="' . get_permalink($previd). '">Next</a></span>';

        }

    ?>
    </nav><!-- .nav-single -->

    <?php
}else{

    // Your Default Previous/Next Links in single.php file
}
?>

答案 1 :(得分:1)

编辑: OP改变了他的问题 - 所以我的解决方案不再正确。

我认为您可以在Wordpress Codex中找到您的解决方案 - http://codex.wordpress.org/Template_Tags/next_post_link

同一类别中的上一篇文章(文字链接)

 <?php previous_post_link('%link', 'Previous in category', TRUE); ?> 

同一类别中的下一篇文章(文字链接)

<?php next_post_link( '%link', 'Next post in category', TRUE ); ?>