是否仅对作者存档自定义帖子?

时间:2017-03-24 作者:ianhman

我正在使用下面的函数尝试显示自定义帖子类型“direct\\u博客帖子”。然而,出于某种原因,它也在显示标准帖子,我不知道为什么?

非常感谢你的帮助。提前谢谢。

   function blogs_custom_author_archives_posts_per_page($query) {

       if (!is_admin() && $query->is_main_query()) {
           if ($query->is_author()) {
                $query->set(\'post_type\', array(\'direct_blog\'));
                $query->set(\'posts_per_page\', 5);
            }
        }
    }
    add_action(\'pre_get_posts\', \'blogs_custom_author_archives_posts_per_page\');

1 个回复
最合适的回答,由SO网友:LWS-Mo 整理而成

您只想从帖子类型中查询帖子direct_blog, 但是NOT 正常的post 类型

而不是只需要删除post 从此行开始:

$query->set(\'post_type\', array(\'post\', \'direct_blog\'));
<小时>

Update:

我刚刚测试了以下代码。

首先,您需要重新访问您的函数,因为其中有一些错误
在问题的代码中,您缺少结束语}!
您还可以使用posts_per_page, 但你错过了“s“,在您的函数中post_per_page.

所以我相信你想要这样的东西:

function my_pre_get_posts( $query ) {

    if (!is_admin() && $query->is_main_query()) {

        if ($query->is_author()) {

            $query->set( \'post_type\', array( \'my_type\' ));
            $query->set( \'posts_per_page\', 5 );

        }
    }
}
add_action( \'pre_get_posts\', \'my_pre_get_posts\' );
正如我上面所说,这段代码在我的WP测试站点中工作,我没有看到正常的帖子,只有来自my_type 在我的作者archiv模板中。所以试着改变my_type 到您的帖子类型(请确保direct_blog 是正确的子弹)

相关推荐

Can you set a role as author?

我是WordPress的新手,我正在尝试找出如何最好地设置权限。我想限制人员组只编辑某些页面(IT部门只编辑IT页面,人力资源部门只编辑人力资源页面等等)。据我所知,您取消了角色“编辑其他页面”的权限,然后将页面的作者设置为您要编辑的人。是否有一种设置多个作者的标准方法,或者是否有一种使角色成为作者而不是单个用户的方法?谢谢