片段 BuddyPress:如何在会员页面中仅显示异性

想要使用 BuddyPress 和 WordPress 建立一个约会网站?除非该网站的概念是向所有性别开放,否则您必须自定义 BuddyPress,以便男性只能看到女性,反之亦然。

BuddyPress 默认不允许在搜索中按性别过滤人员,因此无法 防止同性别的人见面 在会员页面互相交流。

此外,目前还没有 WordPress 插件允许这样做。庆幸的是,背后的人 优秀的 BP Profile Search 插件,它允许您的社交网络的用户搜索成员,共享了一段非常有用的代码。后者不会显示 会员页面中仅限异性,并且会阻止同性互相看到.

不要错过通过电子邮件发送的商业建议

没有垃圾邮件,只有新内容发布时的电子邮件.

要使用它,您需要创建一个名为“bp-custom.php”的文件,并将其上传到 WordPress 安装的 /wp-content/plugins/ 文件夹中。

在此 bp-custom.php 文件中,以下是必须放在 2 个 php 标记之间的代码(不要忘记它们!):

[编码]

add_filter('bp_ajax_querystring', 'modify_members_loop', 20, 2);
函数modify_members_loop($qs = false,$object = false){

if (is_user_logged_in() && !current_user_can('activate_plugins') ){

全局 $wpdb;
if ($object != 'members') return $qs;

// 判断登录用户是男性还是女性
$gender = xprofile_get_field_data(2, bp_loggedin_user_id());

if ($gender == '男')
$query = "从 {$wpdb->prefix}bp_xprofile_data 中选择 user_id,其中 field_id = 2 AND value = '女性'";
别的
$query = "从 {$wpdb->prefix}bp_xprofile_data 中选择 user_id,其中 field_id = 2 AND 值 = '男性'";

$custom_ids = $wpdb->get_col ($query);

$args = wp_parse_args($qs);
$args['include'] = implode(',', $custom_ids);
$qs = build_query($args);

返回 $qs;
}
}

[/编码]

小心,在这段代码中, 您需要将所有“2”替换为“流派”字段对应的 ID 您的 BuddyPress 配置。要查找 ID,请转到“个人资料字段”列表,然后查看“性别”字段的 URL(如果是您要锁定的“性别”字段)。

将“男性”和“女性”替换为您正在使用的确切值 在“流派”字段中。

最后,您可以通过以会员身份登录来观察结果,因为在这段代码中,我们故意排除了管理员,以便 作为管理员,您可以看到组成您的社交网络或约会网站的所有成员! 实用,不是吗?

上传此代码后,您将看到 只有异性成员才会显示在成员循环中。但是,此代码不会过滤显示成员的其他循环(显示最后一个成员的小部件等)。

如果您喜欢我的教程,请随时告诉我 推特Facebook !

2 响应

  1. 早上好,

    这是一个非常实用的功能。

    另一方面,这会与“buddypress follower”插件产生冲突。

    该插件允许成员将自己添加为收藏夹,当您使用代码时,它会将所有成员显示为收藏夹。

    您认为这个问题可以解决吗?

    我提前谢谢你。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

不要错过通过电子邮件发送的商业建议

没有垃圾邮件,只有新内容发布时的电子邮件.

zh_CNZH