对除特定用户组或角色之外的所有人隐藏特定类别的帖子

时间:2018-09-16 作者:zhekaus

我正在寻找一个插件,它允许查看特定用户组(或角色)的帖子,只包括帖子的名称。我想对除了特定用户组(或角色)之外的所有人隐藏这些帖子的提示。

我已经尝试了很多有前途的描述和高评级的流行插件,但不幸的是,它们不满足这个简单的要求。其中大多数只允许隐藏内容,而不允许隐藏标题和类别。

1 个回复
SO网友:Adarsh

实际上,在我的一个项目中也经历了同样的要求。我也搜索了许多插件,但它们没有满足要求。然后我用一些插件找到了解决方法

1.您需要安装ultimate成员插件。

2.在帖子中,你需要创建一个分类法

3.在功能中使用一组代码。php我们可以在新用户注册时添加分类术语作为用户的用户名。下面给出的代码

<?php add_action( \'user_register\', \'yg_user_registration\', 10, 1 );
function yg_user_registration( $user_id ) {
$user_info = get_userdata($user_id); $user_name = $user_info->user_login;
wp_insert_term( $user_name, \'user1\', array() );
}
add_action( \'delete_user\', \'yg_user_delete\', 10, 1 );
function yg_user_delete( $user_id ) {
$user_info = get_userdata($user_id); 
$user_name = $user_info->user_login;
wp_delete_term( get_term_by(\'name\', $user_name, \'user1\')->term_id,\'user1\', array() );
}
?>
4。完成此步骤后,如果添加了新用户,您将获得用户id作为分类术语,然后您可以单独为任何用户分配帖子。如果删除了用户,分类术语也会被删除

5.现在,我们需要通过获取特定用户的id向特定用户显示帖子,请遵循以下代码。

 <?php $author = get_current_user_id(); ?>
<?php $author_obj = get_user_by(\'id\',$author); 
?>
<?php
$custom_args = array(\'post_type\' => \'admin-post\',
    \'posts_per_page\' => \'-1\',
    \'orderby\' => \'id\',
    \'order\' => \'ASC\',
    \'tax_query\' => array(array(
            \'taxonomy\' => \'user1\',
            \'field\' => \'slug\',
            \'terms\' => $author_obj->user_login
        ))
);
$custom_query = get_posts($custom_args);
?>
<?php
foreach ($custom_query as $value) {
    ?>
/*your data */
<?php } ?>
通过这套代码,我们可以达到要求

结束

相关推荐