我在我的博客上有一个“下一步”/“上一步”按钮,当你开始从主页查看并向后浏览时(为了后退或向前浏览帖子),这个按钮工作得很好。我使用的是:
<div><h4><span><?php next_post('% ‹‹‹', 'Previous', 'no', 'no'); ?></span>
<span> <div class="right"><?php previous_post('››› %', 'Next', 'no', 'no'); ?></span>
</h4></div>
然而,当我遇到问题时,每个帖子都被分成不同的类别,我对每个category...this都有一个菜单。我在single.php中使用了上面的代码,但当您单击其类别中的帖子并单击下一篇/上一篇时,它将转到在该特定post...not类别中发布的下一篇或上一篇帖子。
是否可以执行以下操作:如果用户正常访问并继续浏览ste (按照我发布的顺序查看帖子),则下一步/上一步按钮将正常工作,但如果用户通过类别浏览,则下一步和上一步按钮将知道这一点,并引导用户浏览其余的帖子?
发布于 2012-07-04 19:07:08
如果用户来自首页,则可能只需将参数附加到URL即可。所以你有:
http://path.to/blog/article/url/?fromhome=true
并且可以在调用previous_post方法时对其进行检查。如果设置了它,您可以修改它的参数,使其显示所有帖子,否则您将只显示同一类别的帖子。(不要忘记将fromhome参数传递给下一篇/上一篇文章链接!)
编辑:您可以使用post_link过滤器来修改permalink/next_post方法中的链接。
发布于 2012-07-04 19:16:53
不幸的是,除非您在category.php中设置了cookie,否则没有内置的方法来区分用户是否通过类别存档的方式查看帖子。如果你想看一下如何完成这项工作,可以使用php函数setcookie()。
对于next_post()和previous_post()都有一个名为' in _same_cat‘的参数,它是示例中这两个函数的最后一个参数,您已将其设置为'no’。只需将它们设置为“yes”,链接将指向同一类别中的兄弟帖子。
请注意,这两个函数都已弃用。它们已经被next_post_link()和previous_post_link()所取代。参数略有变化,下面是一个示例:
<?php next_post('% ‹‹‹', 'Previous', 'no', 'yes'); ?>
<?php previous_post('››› %', 'Next', 'no', 'yes); ?>
会变成:
<?php next_post_link('% ‹‹‹', 'Previous', 'yes'); ?>
<?php previous_post_link('››› %', 'Next', 'yes'); ?>
https://stackoverflow.com/questions/11334239
复制