Wordpress - next_post_link()不通过post_type过滤而不显示任何内容

时间:2015-05-29 11:28:04

标签: php wordpress wordpress-plugin wordpress-theming

我正在尝试添加上一个和下一个链接到我的投资组合帖子。我有各种自定义帖子,但我只想链接到我的投资组合自定义帖子。

我一直在查看文档并尝试在wordpress循环中使用它

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

这不会返回任何内容。

如果我使用

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

它会返回一个链接,但会链接到不同帖子类型的其他自定义帖子。

关于如何做到这一点的任何想法?

2 个答案:

答案 0 :(得分:1)

next_post_link()接受的第三个参数表示下一篇文章是否必须与当前帖子在同一分类学术语中。如果设置为true,则仅显示当前分类术语中的帖子。如您所见,它与帖子的类型无关。

因此,您需要使用替代功能。

参考:https://codex.wordpress.org/Function_Reference/next_post_link

答案 1 :(得分:0)

我设法通过执行以下操作解决了这个问题,

  1. 执行WordPress查询获取所有相关帖子 对于帖子类型'投资组合'
  2. 声明一个IDS数组并将每个帖子ID放在里面。
  3. 从当前帖子的数组中获取索引
  4. 检查页面是否存在,如果show显示指向页面的链接

                // get_posts in same custom taxonomy
                $postlist_args = array(
                   'posts_per_page'  => -1,
                   'order'           => 'ASC',
                   'post_type'       => 'portfolio',
                ); 
    
                $postlist = get_posts( $postlist_args );
    
                // get ids of posts retrieved from get_posts
                $ids = array();
                foreach ($postlist as $thepost) {
                   $ids[] = $thepost->ID;
                }
    
                //Get index of current post        
                $thisindex = array_search($this_post_id, $ids);
    
                //Check to see if pages exist
                if(isset($ids[$thisindex-1]))
                {
                    $previd = $ids[$thisindex-1];
                    echo '<a rel="prev" href="' . get_permalink($previd). '">previous</a>';
    
                }
                if(isset($ids[$thisindex+1]))
                {
                    $nextid = $ids[$thisindex+1];
                    if ( !empty($nextid) ) {
                        echo '<a rel="next" href="' . get_permalink($nextid). '">next</a>';
                    }
                }
    
                /**  End of function  **/
            ?>
    
  5. 根据我的解决方案调整此信用

    http://bucketpress.com/next-and-previous-post-link-in-same-custom-taxonomy