2013-03-02 2 views
0

Я хочу заменить изображение профиля по умолчанию «Mystery Man» с другим изображением.Как изменить изображение профиля по умолчанию (в Wordpress) для пользователей, у которых нет Gravatar

Как вы знаете, вы можете получить доступ к чьей-то Facebook фотографии, перейдя в http://graph.facebook.com//изображений (заменить с UID запрашиваемого счета

Так что я в основном сделал добавляли файл функция моей темы в эти несколько строк.:

add_filter('avatar_defaults', 'newgravatar'); 


function newgravatar ($avatar_defaults) { 
    $myavatar = 'http://graph.facebook.com/'.get_current_user_id().'/picture'; 
    $avatar_defaults[$myavatar] = "FB Profile Picture"; 
    return $avatar_defaults; 
} 

проблема заключается в том, что WordPress не показывает этот URL непосредственно. Он хранит изображение на серверах WordPress.com в. в результате, картина всегда такая же картина и не изменяется, если другого пользователя регистрируется.

Есть ли способ предотвратить использование WordPress изображения на своих серверах? Или есть другой способ сделать то, что я хочу сделать?

ответ

0

я, наконец, удалось зафиксировать его с помощью этого фильтра:

add_filter('get_avatar', 'new_fb_insert_avatar', 1, 5); 



function new_fb_insert_avatar($avatar = '', $id_or_email, $size = 96, $default = '', $alt = false) { 



    $id = 0; 

    if (is_numeric($id_or_email)) { 

    $id = $id_or_email; 

    } else if (is_string($id_or_email)) { 

    $u = get_user_by('email', $id_or_email); 

    $id = $u->id; 

    } else if (is_object($id_or_email)) { 

    $id = $id_or_email->user_id; 

    } 

    if ($id == 0) return $avatar; 

    $pic = get_user_meta($id, 'fb_profile_picture', true); 

    if (!$pic || $pic == '') return $avatar; 

    $avatar = preg_replace('/src=("|\').*?("|\')/i', 'src=\'' . $pic . '\'', $avatar); 

    return $avatar; 

} 

get_user_meta($id, 'fb_profile_picture', true); приносит пользователя аватар картинку , У каждого пользователя есть другое изображение, и оно хранится в его пользовательской метаинформации.

0

Если у кого-то есть учетная запись gmail с персонализированным аватаром и этот адрес электронной почты используется для регистрации, она автоматически использует этот аватар. Я знаю, что это может быть не совсем то, что вы ищете, но я подумал, что это очень полезно знать.

UPDATE:

Найдено ваш ответ здесь:

http://buildinternet.com/2009/02/how-to-change-the-default-gravatar-in-wordpress/

+0

На самом деле, что они говорят, это именно то, что я сделал, и это не сработало ... Это почти тот же код. Проблема в том, что Wordpress кэширует картинки, что вызывает проблему. Если бы был способ предотвратить Wordpress от кеширования изображений, это сработало бы. –

+0

Я думаю, что после внесения изменений за 24 часа Wordpress обновит файл и кеширует его еще 24. –

+0

Это не помогает ... У каждого пользователя есть другое изображение. Даже если wordpress обновит его за 24 часа, он не решит проблему. Картинка должна быть визуализирована постоянно, поэтому каждый пользователь получит другое изображение. Трудно объяснить, о чем я говорю. Надеюсь, вы понимаете, в чем проблема, поэтому вы можете помочь мне решить эту проблему. –

Смежные вопросы