我想建立一个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事实的提示,帮助我实现所需的功能。
非常感谢您的关注。
最合适的回答,由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,
....