下一个/上一个帖子链接仅指向一个或多个特定类别内的帖子

时间:2019-05-08 作者:TASan

我有多个类别的帖子。我会在特定类别的帖子上显示下一个/上一个帖子链接,不管这篇帖子还有多少其他类别。链接现在指向该帖子所属的任何类别中的帖子。我只想链接到该帖子所属类别中的下一篇/上一篇帖子。

我在网上找到了一个功能,我试图更改它以满足我的需要。这是我的职责。php文件:

//Next and previous post logic
function get_excluded_categories() {
   // Get categories of current post
   $current_cats = wp_get_post_terms( get_the_ID(), \'category\' );
   // Declare array to store excluded categories
   $excluded_cats = [];
   // Loop through current categories
   foreach( $current_cats as $cat ) {
      // Check if current category is included
      $this_cat = $cat->slug;
      if($this_cat !== \'[SLUG]\') {
          // If it is not, add it\'s term ID to the excluded array
          array_push($excluded_cats, $cat->term_id);
      }
   }
   return $excluded_cats;
}
以下是我显示链接的方式:

<?php if (in_category(\'[SLUG]\')) : ?>
            <div class = "next-post"><?php next_post_link(\'%link &raquo;\', \'%title\', true, get_excluded_categories()); ?></div>
            <div class = "prev-post"><?php previous_post_link(\'&laquo; %link\', \'%title\', true, get_excluded_categories()); ?></div>
<?php endif; ?>
这并不像预期的那样有效。只显示一个链接,下一个或上一个帖子链接。如果我在这个类别中只有两篇帖子,这是很好的行为。但是如果我有三篇文章,我只想在第一篇文章上有下一个链接,在中间的文章上有下一个和上一个链接,在最后一篇文章上只有上一个链接。

目前,它似乎只是跳过了第一个和最后一个帖子之间的任何现有帖子 实际上,跳过的不是“中间”的帖子,而是第二篇帖子没有到第三篇帖子的链接。如果我手动进入第三篇文章,它之前有一个指向第一篇文章的链接,而不是预期的第二篇。

我知道我的逻辑可能是错的,但我不明白是怎么回事,在哪里,为什么。

非常感谢您的帮助!

1 个回复
SO网友:TASan

我通过放弃代码并注册新的分类法解决了这个问题。然后我在单曲中使用了这段代码。php:

<?php if (has_term(\'[TERM-NAME]\', \'[TAXONOMY-NAME]\')) : ?>
        <div class = "next-post"><?php next_post_link(\'%link &raquo;\', \'%title\', true, \'\', \'[TAXONOMY-NAME]\') ?></div>
        <div class = "prev-post"><?php previous_post_link(\'&laquo; %link\', \'%title\', true, \'\', \'[TAXONOMY-NAME\') ?></div>
<?php endif; ?>
这样做允许我拥有多个类别,因为我在每个帖子的自定义分类法中只分配了一个术语。

相关推荐