2

我有一个自定义帖子类型,我正在使用自定义分类法。这些分类法用于过滤和创建帖子的索引列表。

问题是,一旦我从过滤列表中单击其中一个帖子,页面上就会有上一个和下一个帖子链接;我希望这些链接尊重之前添加的过滤器。

有没有办法拉出“下一个匹配的帖子”,而不仅仅是下一个相同自定义类型的帖子?似乎应该有一个内置的过滤器变量选项,但我似乎找不到它。

做这样的事情会很好:

$filter = array("foo"=>"bar","category"=>"something");
$next_post = get_next_post($filter);

显然这与 Wordpress API 不兼容,但唯一类似的选项是“in_same_cat”,这绝对是不够的。

伪 sql 中的基本查询类似于:

SELECT * from wp_posts where (insert custom arguments here)
   AND ID<(current post id)
   AND LIMIT=1
   AND ORDER_BY=ID
   AND ORDER=DESC
4

1 回答 1

0

如果我猜对了,您想从单个模板更改将出现在“下一个/上一个帖子”中的帖子。据我所知,它使用post_nav_link函数(http://codex.wordpress.org/Function_Reference/posts_nav_link)。有两种方法可以改变这种行为:

  1. 函数参数:正如您在该链接和http://core.trac.wordpress.org/browser/tags/3.6.1/wp-includes/link-template.php#L1636中看到的,您可以尝试使用参数以确保您想要的行为。

但...

  1. 使用过滤器:您可能需要使用过滤器get_pagenum_link。使用此过滤器,您将能够返回要显示的帖子的 ID。所以只需使用 $wp_query 或 $post 全局变量并帮助自己。

如果你需要一些帮助,尽管问,我很乐意提供帮助。

于 2013-09-20T09:50:44.853 回答