Jak w WordPressie dla standardowych komentarzy zmienić wielkość avatara?


Miałem ostatnio problem z wielkością ikonek użytkownika wyświetlanych na liście komentarzy. Klient używa szablonu potomnego w stosunku do Twenty Twelve i zażyczył sobie zmiany wielkości wyświetlanych awatarów.

Zmiana może być dół lub w górę i o ile zmniejszenie awatara można osiągnąć za pomocą czystego css’a, to w górę nie będzie to sensowne, bo wyświetlane ikony zrobią się brzydkie.

Oczywiście, mogłem dołożyć plik comments.php1 i w funkcji wp_list_comments()2 w argumentach podać interesującą mnie wielkość awatara, ale uznałem takie rozwiązanie za mało eleganckie i generujące niepotrzebny plik w motywie potomnym.

Szczególnie dla tak mikroskopijnej zmiany.

Rozwiązaniem jest oczywiście użycie odpowiedniego filtra, za pomocą którego można zmienić rozmiar.

Niestety nie znalazłem bezpośredniej metody na zmianę rozmiaru, ale można wymienić cały html, zawierający tag IMG dla obrazka.

Co realizuje poniższy kod:

class iWorks_Change_Avatar_Size
{
    private $size = 92;

    public function __construct()
    {
        add_filter( 'get_avatar', array( &$this, 'get_avatar' ), 10, 5 );
    }

    /**
     * get_avatar filter
     */
    public function get_avatar( $avatar, $id_or_email, $size, $default, $alt )
    {
        if ( $this->size == $size ) {
            return $avatar;
        }
        return get_avatar( $id_or_email, $this->size, $default, $alt );
    }
}

new iWorks_Change_Avatar_Size();

Aby zmienić na inną wielkość, należy liczbę 92 wymienić na taką, która nam pasuje.

pobierz plik: iworks-change-avatar-size.php-.zip

Jak użyć podany kod?

Masz 3 rozwiązania:

  1. wrzuć załączony plik do folderu wp-content/plugins, a potem włącz wtyczkę
  2. wrzuć załączony plik do folderu wp-content/mu-plugins
  3. dołącz kod do pliku functions.php aktualnie używanego motywu
  1. funkcja: comments_template() []
  2. funkcja: wp_list_comments() []