Добавление класса в gravatar img в wordpress

Я пытался использовать get_avatar для отображения граватара автора под каждым сообщением в шаблоне wordpress с примененным классом, но я не смог найти способ добавить class="pic-2" в код изображения граватара или даже изменить высоту и ширину граватара на 100 пикселей и 77 пикселей соответственно.

<?php echo get_avatar( get_the_author_meta('ID'), 32 ); ?>

Ребята помогите??


person Community    schedule 24.11.2012    source источник


Ответы (4)


Я думаю, что лучший способ справиться с этим - использовать фильтр, а не использовать jQuery, как предлагает Джордж. Вы можете просто добавить это в файл functions.php вашей темы.

add_filter('get_avatar','add_gravatar_class');

function add_gravatar_class($class) {
    $class = str_replace("class='avatar", "class='avatar pic-2", $class);
    return $class;
}

* Примечание. Я не проверял это, но думаю, что это сработает. Дополнительную информацию см. в этой теме.

person Ryan    schedule 03.04.2013

Ознакомьтесь с Кодексом WordPress для получения дополнительной информации:

http://codex.wordpress.org/Using_Gravatars

Для размера попробуйте обернуть второй параметр следующим образом:

<?php echo get_avatar( get_the_author_meta('ID'), $size = '96' ); ?>

Вывод html по умолчанию выглядит так:

<img alt='' src='http://gravatarurl_or_default' class='avatar avatar-$size' height='$size' width='$size' />

Вы можете стилизовать класс по умолчанию «аватар» вместо «pic-2». Если вы все еще хотите добавить класс, вы можете сделать это с помощью javascript следующим образом:

$("img[class='avatar']").addClass("pic-2");

Надеюсь это поможет! :)

person George Ortiz    schedule 24.11.2012
comment
Спасибо за эту ссылку! Я заставил свою работать :D thelifeleveler.com/ - person Leon Gaban; 12.01.2013

Если ответ @Ryan (помеченный как решение) вам не подходит, попробуйте изменить

add_filter('get_avatar','add_gravatar_class');

function add_gravatar_class($class) {
    $class = str_replace("class='avatar", "class='avatar pic-2", $class);
    return $class;
}

в

add_filter('get_avatar','add_gravatar_class');

function add_gravatar_class($class) {
    $class = str_replace('class="avatar', 'class="avatar pic-2', $class);
    return $class;
}

Этот старт работает для меня после замены "на".

Извините, что я не написал это как комментарий к этому ответу, но у меня нет репутации 50, чтобы комментировать другие сообщения.

person Macias    schedule 16.02.2017
comment
Спасибо, наконец-то нашел решение этой проблемы :) - person Mike; 21.06.2017

Еще один способ сделать это для будущих искателей, очень простые манипуляции со строками, которые, вероятно, немного безопаснее, если они изменят функцию в будущем, например. у него, вероятно, всегда будет «класс».

    $grvimg = get_avatar('email address', 200);
    $grvimg = explode("class='", $grvimg);
    $grvimg[1] = 'your-class ' . $grvimg[1];
    $grvimg = $grvimg[0] . $grvimg[1];
    echo $grvimg;
person Latro666    schedule 23.10.2014