对特定用户角色隐藏Author.php模板

时间:2018-08-09 作者:Missiona

我有一位作家。设置用户配置文件样式的php模板(自定义角色:代理等)

我有一个博客和编辑;贡献者可以发布文章。

Problem

当博客上的查看器单击作者链接以查看作者存档页面时,加载的页面就是作者。php模板。此模板显示代理配置文件详细信息,没有文章。这位作者。php模板与编辑器无关&;贡献者。

Solution?

如何排除编辑器(&A);来自加载此作者的参与者。php文件?这样,当用户访问博客文章作者链接时,会将他们带到作者存档页面,而不是代理作者。php自定义模板

希望这足够清楚,谢谢你的帮助!

1 个回复
最合适的回答,由SO网友:David Sword 整理而成

这个template_include 钩子允许您更改要使用的模板文件。

在其中,您可以有条件地检查它是否是请求的作者页,然后使用get_query_var() 获取请求的作者。然后检查authors角色,看看它是否是您不想要的,如果是,请使用其他模板。

以下内容未经测试,但类似于:

add_filter( \'template_include\', \'myplugin_author_redirect\', 99 );

function myplugin_author_redirect( $template ) {

    if ( is_author() ) { // When any Author page is being displayed

        // get the user page being requested
        $user = get_user_by(\'slug\', get_query_var(\'author_name\'));
        $user_role = array_shift($user->roles);

        // user roles we want to redirect away
        $exempt = array(\'editor\', \'contributor\');
        if ( in_array($user_role,$exempt,true) ) {
            // wtv file you want to load when an editors or contributor author page is requested
            return locate_template( array( \'archive.php\' ) );
        }
    }
    return $template;
}

结束

相关推荐

Author.php中的自定义帖子类型

拜托,我已经和这个问题斗争了好几天了。。。我想在author archive中显示自定义帖子类型,并能够在今天早些时候获得此代码来显示它们:add_action( \'pre_get_posts\', function ( $q ) { if( !is_admin() && $q->is_main_query() && $q->is_author() ) { $q->set( \'posts_pe