0

我的博客上有一个“下一个/上一个”按钮,当您从主页开始查看并后退(以便通过帖子后退或前进)时,该按钮非常有用。我用这个:

<div><h4><span><?php next_post('% &lsaquo;&lsaquo;&lsaquo;',  'Previous', 'no', 'no'); ?></span>
 <span> <div class="right"><?php previous_post('&rsaquo;&rsaquo;&rsaquo;  %', 'Next', 'no', 'no'); ?></span>
 </h4></div>

但是,每个帖子都分为几类,每个类别都有一个菜单……这是我遇到问题的时候。我在 single.php 中使用了上面的代码,但是当您单击其类别中的帖子并单击下一个/上一个...它会转到该特定帖子时发布的下一个或上一个帖子...不是类别。

是否可以执行以下操作:如果用户访问并继续正常浏览 ste(按我发布它们的顺序查看帖子),则下一个/上一个按钮正常工作,但如果用户通过类别浏览,下一个之前的按钮会知道这一点并引导用户浏览其余的帖子吗?

4

2 回答 2

0

如果用户来自首页,您可能只需将参数附加到 URL。所以你有:

http://path.to/blog/article/url/?fromhome=true

并且可以在调用 previous_post 方法时检查它。如果已设置,您可以修改其参数以显示所有帖子,否则您将仅显示同一类别的帖子。(不要忘记将 fromhome 参数传递给下一个/上一个帖子链接!)

编辑:您可以使用 post_link 过滤器来修改 permalink/next_post 方法中的链接。

于 2012-07-04T19:07:07.667 回答
0

不幸的是,除非您在 category.php 中设置 cookie,否则没有内置方法可以区分用户是否通过类别存档查看了帖子。如果你想看看这样做,请查看 php 函数setcookie()

next_post()previous_post()都有一个名为“in_same_cat”的参数,它是您示例中两个函数的最后一个参数,您已将其设置为“否”。只需将它们设置为“是”,链接将指向同一类别中的兄弟帖子。

请注意,这两个功能都已被弃用。它们已被next_post_link()previous_post_link()取代。参数略有变化,这里有一个例子:

<?php next_post('% &lsaquo;&lsaquo;&lsaquo;',  'Previous', 'no', 'yes'); ?>
<?php previous_post('&rsaquo;&rsaquo;&rsaquo;  %', 'Next', 'no', 'yes); ?>

会成为:

<?php next_post_link('% &lsaquo;&lsaquo;&lsaquo;', 'Previous', 'yes'); ?>
<?php previous_post_link('&rsaquo;&rsaquo;&rsaquo;  %', 'Next', 'yes'); ?>
于 2012-07-04T19:16:52.563 回答