"http :/mywebsite/user/username"에서 buddypress 및 wordpress의 모든 곳에서 프로필 URL을 변경하기 위해 부분적으로 작동하는이 코드를 사용하고 있습니다. "http :/mywebsite/사용자/사용자 ID "닉네임 또는 사용자 아이디로 Buddypress에서 사용자 프로파일 URL을 변경하십시오.
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 변경 - 메시지가 두 그룹에서 작동하지 않습니다. 의 활동과 personnal 활동
- 활동 REPLY의 저자의 URL 변화는 내가 잘 내가 가지고하지만 난 당신이 이해 바랍니다 어떤 문제를 설명하고 있다면 나도 몰라
을하고있다 .
는 답변을PS 감사 : 감사 aSeptik에 StackExchange에서 코드