我有一个自定义帖子类型,我正在使用自定义分类法。这些分类法用于过滤和创建帖子索引列表。
问题是,一旦我从过滤列表中单击其中一个帖子,我就会在页面上看到上一篇和下一篇帖子链接;我希望这些链接尊重之前添加的过滤器。
有没有办法提取“下一个匹配的帖子”,而不仅仅是下一个相同自定义类型的帖子?好像内置了一个过滤变量选项,但是我好像找不到。
做这样的事情会很好:
$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
最佳答案
如果我没看错,您想从单个模板更改将出现在“下一篇/上一篇文章”中的文章。 据我所知,它使用 post_nav_link 函数 ( http://codex.wordpress.org/Function_Reference/posts_nav_link )。 有两种方法可以改变这种行为:
- 函数参数:如您在该链接和 http://core.trac.wordpress.org/browser/tags/3.6.1/wp-includes/link-template.php#L1636 中所见,您可以尝试使用参数来确保您想要的行为。
但是……
- 使用过滤器:您可能需要使用过滤器 get_pagenum_link。使用此过滤器,您将能够返回要显示的帖子的 ID。因此,只需使用 $wp_query 或 $post 全局变量并帮助自己。
如果您需要帮助,尽管提出来,我很乐意提供帮助。
关于php - 根据当前查询变量在 Wordpress 中预过滤 get_next_post(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17374127/