这有一个更聪明的方法来使用php next / previous_post?

时间:2012-07-04 18:59:49

标签: php wordpress categories next

我的博客上有一个下一个/上一个按钮,当您从主页开始查看并向后退(按顺序返回或转发帖子)时,该按钮效果很好。我用这个:

<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(按照我发布的顺序查看帖子),则下一个/上一个按钮正常工作,但如果用户通过类别浏览,下一个和上一个按钮会知道这一点,并让用户完成其余的帖子吗?

2 个答案:

答案 0 :(得分:0)

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

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

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

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

答案 1 :(得分:0)

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

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

请注意,这两个功能都已被弃用。它们已被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'); ?>