是否阻止作者角色编辑自定义帖子类型中的所有帖子?

时间:2015-05-06 作者:LBF

我认为作者角色只允许编辑该作者创建的帖子。这适用于帖子和页面,但我创建了一个自定义帖子类型,作者可以编辑该帖子类型中的所有帖子。您是否必须对自定义帖子类型执行一些特殊操作才能使作者角色正常工作?

我尝试使用此代码,这是我在另一个问题上发现的,但它没有为我解决:

function to_parse_query_useronly( $wp_query ) {
    if ( strpos( $_SERVER[ \'REQUEST_URI\' ], \'/wp-admin/edit.php\' ) !== false ) {
        if ( !current_user_can( \'publish_posts\' ) ) {
            global $current_user;
            $wp_query->set( \'author\', $current_user->id );
        }
    }
}
add_filter(\'parse_query\', \'to_parse_query_useronly\' );
谢谢大家!

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

注册post类型时,应声明所需的功能。

Justin的文章对于自定义帖子类型来说是一篇很好的文章:http://justintadlock.com/archives/2010/04/29/custom-post-types-in-wordpress

注册自定义帖子类型时,可以将其设置为帖子的标准功能,例如:

\'capability_type\'    => \'post\',
或成为页面的标准功能,例如。

\'capability_type\' => \'page\',
或者使用全局控件设置您自己的功能类型,或者通过特定阵列直接访问特定控件,例如。

/* Global control over capabilities. */
\'capability_type\' => \'super_duper\',

/* Specific control over capabilities. */
\'capabilities\' => array(
\'edit_post\' => \'edit_super_duper\',
\'edit_posts\' => \'edit_super_dupers\',
\'edit_others_posts\' => \'edit_others_super_dupers\',
\'publish_posts\' => \'publish_super_dupers\',
\'read_post\' => \'read_super_duper\',
\'read_private_posts\' => \'read_private_super_dupers\',
\'delete_post\' => \'delete_super_duper\',
),

结束

相关推荐

Query posts distinct authors

我试图从一个随机排序的类别中获取帖子,但要确保作者不会重复自己。因此,我提出了这个问题,它按预期工作,但作者有可能会在这4篇文章中重复。那么,有没有办法确保它不会发生?我曾考虑使用$wpdb,但我希望有一个更直接的解决方案。$args = array ( \'post_type\' => \'post\', \'post_status\' => \'publish\', \'category_name\'