修改作者档案查询以合并两个查询

时间:2018-11-06 作者:Chris Herbert

我在一个网站上工作,通过使用“其他作者”的帖子到帖子连接类型,允许多个作者发表帖子。帖子仍然有一个标准作者,但也可以选择有其他作者。

我想修改“作者档案”查询,以包含作者的所有帖子,包括那些“附加”作者的帖子。这并不像向主author查询中添加参数那么简单,所以在pre_get_posts 我将通过从两个查询中获取匹配的post id来组合两个查询,然后运行post__in 查询

这是可行的,但我不知道如何将查询结果传递给作者模板。更改author query var表示站点不显示作者存档模板。

tl;dr-您可以使用pre_get_posts 要完全自定义作者存档查询,并包括不是该用户实际撰写的帖子?

1 个回复
SO网友:Chris Herbert

我发现的唯一方法是使用posts_where 滤器

例如:

        $post_ids = function_that_gets_desired_post_ids();

        add_filter(\'posts_where\', function($where) use ($post_ids){

            $post_ids = array_map(function($id){
                return (int) $id;
            }, $post_ids);

            $in = implode(\',\', $post_ids);
            $where .= " OR (ID IN ($in) AND post_type = \'post\')";
            return $where;

        });
使用这样的东西不会让我感觉很好,但确实有效。

结束

相关推荐