按用户‘xprofile’自定义域筛选BuddyPress用户帖子

时间:2017-08-30 作者:Chris Casey

嗨,我正在努力找出如何根据用户的个人资料字段为用户的帖子制作过滤器。。示例=用户注册表选择了2017、2018学年的下拉配置文件字段,然后他们创建了一个帖子。按毕业年份的分类筛选所有帖子。。所以你只能看到那个学年的人发的帖子。有没有人知道一个插件可以做到这一点。令人困惑的是,帖子正在加载,但会根据成员详细信息进行过滤。两个单独的目录。

请提供帮助或建议

1 个回复
SO网友:dperezac

首先,可以将“学校”字段的值和属于此字段值的用户id保存在关联数组中。您需要知道学校字段ID。

define(FIELD_ID, /* Insert field id here */);    
/* Save all site users */
$users = bp_core_get_users();
/* Create array for save fields values */
$user_xprofile_school = array();

/* Loop over each user and save the id and the school field value */
foreach ( $users as $user ):
        $index = 0;
        foreach ( $user as $u ):
            /* Check if value exists before save */
            if ( xprofile_get_field_data( FIELD_ID, $u->id, \'array\' ) ):
                $users_xprofile_school[$index][\'user_id\'] = $u->id;
                $users_xprofile_school[$index][\'field_school\'] = xprofile_get_field_data(FIELD_ID, $u->id, \'array\');
                $index++;
            endif;
        endforeach;
    endforeach;
这将返回如下数组:

array([0] => ([user_id] => 1, [field_school] => \'years 2017\'), [1] => ([user_id] => 2, [field_school] => \'years 2018\'))
然后可以使用field_school 索引和user_id.

这并不是全部工作,但可能是一个良好的起点。希望这对你有帮助。

结束

相关推荐

Recent Posts - Show all posts

我对这一点非常陌生,我想做的只是不限制主页上列出的帖子数量。它目前只显示了大约32个帖子中的20个,因此所有旧帖子都不再显示。有没有一种简单的方法可以使最近的帖子下显示的帖子数量不受限制,甚至99个?