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

BuddyPress 约会网站类型 1

想要使用 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){

喜欢 WordPress 生态系统吗?探索 我在 WordPress 上发表的最好的文章我的 WordPress 扩展 让您的网站闪耀光芒!

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 = "SELECT user_id FROM {$wpdb->prefix}bp_xprofile_data WHERE field_id = 2 AND value = 'Female'";
别的
$query = «SELECT user_id FROM {$wpdb->prefix}bp_xprofile_data WHERE field_id = 2 AND value = 'Male'‘;

$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 条对“Snippet BuddyPress : comment n’afficher que les personnes du genre opposé dans la page des membres”的回复

  1. rahou 的头像
    拉胡

    早上好,

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

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

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

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

    我提前谢谢你。

  2. yannick 的头像
    扬尼克

    我安装不了,请问你是怎么安装的?

发表回复

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