自定义帖子类型-仅管理员支持“作者”

时间:2021-02-15 作者:Álvaro Franz

我想建立一个Custom Post Type 它只支持管理员的作者功能。

其他用户角色也可以创建、查看和编辑自己的帖子,但管理员应该能够切换帖子的作者。

到目前为止,由于pre_get_posts filter.

这就是我如何定义CPT的。现在我该怎么做才能将支持作者限制为管理员用户?

// CPT
function prefix_setup_cpt(){
register_post_type(\'whatever\',
    array(
    \'labels\'        => array(
                      \'name\'           => \'Whatever\',
                      \'singular_name\'  => \'Whatever\'
                      ),
    \'supports\'      => array(
                      \'title\',
                      \'editor\',
                      \'author\'  // <--- This enables author feature
                      )
....
我不是在寻找复制/粘贴的编码答案,而是关于钩子和其他WordPress事实的提示,帮助我实现所需的功能。

非常感谢您的关注。

1 个回复
最合适的回答,由SO网友:Álvaro Franz 整理而成

多亏了TomJNowell的帮助,这将是一个可行的解决方案:

$supports = array(
    \'title\',
    \'editor\'
);
if(current_user_can(\'delete_plugins\')){
    $supports[] = \'author\';
}
register_post_type(\'whatever\',
    array(
    \'labels\'        => array(
                      \'name\'           => \'Whatever\',
                      \'singular_name\'  => \'Whatever\'
                      ),
    \'supports\'      => $supports,
....