按用户角色隐藏自定义帖子类型

时间:2021-05-17 作者:Mohammad Esmaili

我创建了一个自定义帖子类型(Customers),我想只向具有Customer角色的用户显示此帖子类型的帖子。

没有插件或有插件有什么办法?

3 个回复
最合适的回答,由SO网友:Mohammad Esmaili 整理而成

正如@Tonydjukic提到的,最好的方法是先获得用户角色,然后向他显示内容。

我们还可以使用此代码:

$user = wp_get_current_user();
$allowed_roles = array( \'administrator\', \'customer\' );
if ( array_intersect( $allowed_roles, $user->roles ) ) {
}

SO网友:MMK

如果你想使用插件。高级访问管理器。https://wordpress.org/plugins/advanced-access-manager/

该插件基本上允许您不仅管理对特定帖子后端和前端的访问。但也隐藏菜单和仪表板条目。

SO网友:Edward

你可以使用register_post_type_args 要更改的筛选器publicfalse 取决于您的用户角色。

https://developer.wordpress.org/reference/hooks/register_post_type_args/

https://developer.wordpress.org/reference/functions/register_post_type/#public

相关推荐

将数组作为元值的GET_USERS

我的WordPress用户有一个自定义的生日元密钥(DD/MM/AAAA,例如2020年2月25日)。如果我想让所有用户今天(2002年2月25日)出生,我可以使用:$todays_birthday=\'25/02/\'; get_users(array(\'meta_compare\'=>\'like\', \'meta_key\'=>\'birthday\', \'meta_value\'=>$todays_birthday)); 它工作完美,返回所有今天出生的用户