Buddypress:组目录的默认排序顺序
Buddypress: Default sort oder for Group Directory
我希望组目录中的组在 Buddypress 中按字母顺序排序,除非用户通过下拉菜单选择自己的排序。
我尝试通过自定义函数:
add_filter('bp_after_has_groups_parse_args', function ($options)
{
if (bp_is_groups_directory()) {
if(!$options['type'])
$options['type'] = 'alphabetical';
}
return $options;
});
根据文档,当用户尚未在下拉列表中选择一个选项时,$options['type'] 为“null”,即当它是初始排序时。
至少第 995 行是这么说的:
https://github.com/buddypress/BuddyPress/blob/master/src/bp-groups/classes/class-bp-groups-group.php#L995
不过好像不行。
有什么想法吗?
在buddy press 10.0.0中,你只需要在以下位置更改bp-groups-template.php:
/wp-content/plugins/buddypress/bp-groups/bp-groups-template.php
在文件中,找到这个区域:
/**
- 启动群组模板循环。
在函数bp_has_groups中找到这一段:
$r = bp_parse_args(
$args,
array(
'type' => $type,
'order' => 'ASC', // changed from DESC
'orderby' => 'name', // changed from last_activity
我在 // 之后添加了信息,所以我知道对原始内容进行了哪些更改。
这会将群组页面的默认首次查看设置为按字母顺序排列的列表。我们在 BuddyPress 之上实施 Youzify,因此我还更改了
中列出的默认顺序
/wp-content/plugins/youzify/includes/public/templates/groups/index.php
/**
* 在组目录组类型中触发。
*
* @since 1.2.0
*/
do_action('bp_groups_directory_group_types'); ?>
<li id="groups-order-select" class="last filter">
<label for="groups-order-by"><?php _e( 'Order By:', 'youzify' ); ?></label>
<select id="groups-order-by">
<option value="alphabetical"><?php _e( 'Alphabetical', 'youzify' ); ?></option>
<option value="active"><?php _e( 'Last Active', 'youzify' ); ?></option>
<option value="popular"><?php _e( 'Most Members', 'youzify' ); ?></option>
<option value="newest"><?php _e( 'Newly Created', 'youzify' ); ?></option>
<?php
/**
* Fires inside the groups directory group order options.
*
* @since 1.2.0
*/
do_action( 'bp_groups_directory_order_options' ); ?>
</select>
这里与原来的唯一变化就是走这条线:
<option value="alphabetical"><?php _e( 'Alphabetical', 'youzify' ); ?></option>
从列表底部到顶部。
希望这对以后的人有所帮助。
我希望组目录中的组在 Buddypress 中按字母顺序排序,除非用户通过下拉菜单选择自己的排序。
我尝试通过自定义函数:
add_filter('bp_after_has_groups_parse_args', function ($options)
{
if (bp_is_groups_directory()) {
if(!$options['type'])
$options['type'] = 'alphabetical';
}
return $options;
});
根据文档,当用户尚未在下拉列表中选择一个选项时,$options['type'] 为“null”,即当它是初始排序时。
至少第 995 行是这么说的: https://github.com/buddypress/BuddyPress/blob/master/src/bp-groups/classes/class-bp-groups-group.php#L995
不过好像不行。 有什么想法吗?
在buddy press 10.0.0中,你只需要在以下位置更改bp-groups-template.php:
/wp-content/plugins/buddypress/bp-groups/bp-groups-template.php
在文件中,找到这个区域:
/**
- 启动群组模板循环。
在函数bp_has_groups中找到这一段:
$r = bp_parse_args(
$args,
array(
'type' => $type,
'order' => 'ASC', // changed from DESC
'orderby' => 'name', // changed from last_activity
我在 // 之后添加了信息,所以我知道对原始内容进行了哪些更改。
这会将群组页面的默认首次查看设置为按字母顺序排列的列表。我们在 BuddyPress 之上实施 Youzify,因此我还更改了
中列出的默认顺序/wp-content/plugins/youzify/includes/public/templates/groups/index.php
/** * 在组目录组类型中触发。 * * @since 1.2.0 */ do_action('bp_groups_directory_group_types'); ?>
<li id="groups-order-select" class="last filter">
<label for="groups-order-by"><?php _e( 'Order By:', 'youzify' ); ?></label>
<select id="groups-order-by">
<option value="alphabetical"><?php _e( 'Alphabetical', 'youzify' ); ?></option>
<option value="active"><?php _e( 'Last Active', 'youzify' ); ?></option>
<option value="popular"><?php _e( 'Most Members', 'youzify' ); ?></option>
<option value="newest"><?php _e( 'Newly Created', 'youzify' ); ?></option>
<?php
/**
* Fires inside the groups directory group order options.
*
* @since 1.2.0
*/
do_action( 'bp_groups_directory_order_options' ); ?>
</select>
这里与原来的唯一变化就是走这条线:
<option value="alphabetical"><?php _e( 'Alphabetical', 'youzify' ); ?></option>
从列表底部到顶部。
希望这对以后的人有所帮助。