Я использую этот код, который частично работает для изменения URL-адреса профиля повсюду в buddypress и wordpress с «http:/mywebsite/user/username» на «http:/mywebsite/пользователь/идентификатор»Изменить URL-адрес профиля пользователя в Buddypress с псевдонимом или userID
function _bp_core_get_user_domain($domain, $user_id, $user_nicename = false, $user_login = false) {
if (empty($user_id)){
return;
}
if(isset($user_nicename)){
$user_nicename = bp_core_get_username($user_id);
}
$after_domain = bp_get_members_root_slug() . '/' . $user_id;
$domain = trailingslashit(bp_get_root_domain() . '/' . $after_domain);
$domain = apply_filters('bp_core_get_user_domain_pre_cache', $domain, $user_id, $user_nicename, $user_login);
if (!empty($domain)) {
wp_cache_set('bp_user_domain_' . $user_id, $domain, 'bp');
}
return $domain;
}
add_filter('bp_core_get_user_domain', '_bp_core_get_user_domain', 10, 4);
function _bp_core_get_userid($userid, $username){
if(is_numeric($username)){
$aux = get_userdata($username);
if(get_userdata($username))
$userid = $username;
}
return $userid;
}
add_filter('bp_core_get_userid', '_bp_core_get_userid', 10, 2);
function _bp_get_activity_parent_content($content){
global $bp;
$user = get_user_by('slug', $bp->displayed_user->fullname); // 'slug' - user_nicename
return preg_replace('/href=\"(.*?)\"/is', 'href="'.bp_core_get_user_domain($user->ID, $bp->displayed_user->fullname).'"', $content);
}
add_filter('bp_get_activity_parent_content','_bp_get_activity_parent_content', 10, 1);
add_filter('bp_core_get_userid_from_nicename', '_bp_core_get_userid', 10, 2);
Он отлично работает для меня на данный момент, но не на этом маленьком месте (смотри рисунок):
http://i.imgur.com/4dX0RUB.png
- изменить URL автора в начальной активности -message не работает в обеих группах ые мероприятия и Personnal деятельность
- изменение URL автора в ОТВЕТЕ деятельности работают
Я не знаю, если я объясняю очень хорошо, что проблема у меня, но я надеюсь, что вы поймете, ,
Спасибо за ваши ответы
PS: благодаря aSeptik из StackExchange для кода