Intereting Posts
Get_the_author не возвращает имя автора Разрешить пользователю редактировать сообщения, но не добавлять новые? Удаление «категории» из URL-адресов, тогда «add_endpoint ()» не будет работать … Как восстановить пароль от пользователя Выдавать пользовательский таксономический запрос как единый шаблон htaccess mod_rewrite не работает Функция / фильтр или плагин для изменения статуса сообщения на основе настраиваемого значения поля Как использовать запрос WHERE NOT EXISTS, чтобы избежать дублирования записи с помощью $ wpdb для сохранения в пользовательской таблице? WP 3.3 моя панель инструментов редактора текстовых разделов исчезла! Как переименовать ссылку профиля на странице wp-admin Как создать этот пользовательский ходок? Совместимость с веб-приложениями с WP Plugin wp-admin перенаправление на wp-login.php Кнопка WooCommerce «Checkout Now» результат поиска фильтра с помощью мета-ключа персонализированного сообщения

Альтернатива использованию функции get_avatar?

Я использовал ручку WP для отображения авторских фото. Например, у моего single.php есть авторский слиз, который отображает авторский рис.

Я создал папку под названием author в моей папке theme / images. Основываясь на идентификаторе автора, я называю файл 1.jpg, 2.jpg и так далее.

Поэтому я называю это изображение как

<img src="<?php bloginfo('template_directory') ?>/images/authors/<?php the_author_ID()?>.jpg" alt="<?php the_author(); ?>"> 

Теперь я изменяю плагин, который отображает авторов на боковой панели. Однако этот плагин использует функцию get_avatar, которая выглядит следующим образом:

 /** * If show avatar option is checked, add get_avatar function to cache. */ if($jmetc_options['show_avatar'] == 1) { $jmevar['cache'] .= get_avatar($tc->comment_author_email, $jmetc_options['avatar_size']); } 

Может ли кто-нибудь посоветовать мне, как использовать / модифицировать get_avatar, чтобы использовать код по умолчанию, который я использую?

Solutions Collecting From Web of "Альтернатива использованию функции get_avatar?"

Функция get_avatar() применяет фильтр фильтра get_avatar , который вы можете использовать для изменения разметки аватара:

 return apply_filters('get_avatar', $avatar, $id_or_email, $size, $default, $alt); 

Я думаю, что это будет правильный способ подключиться к этому фильтру:

 function mytheme_get_avatar( $avatar ) { $avatar = '<img src="<' . get_template_directory_uri() . '/images/authors/' . get_the_author_ID() . '.jpg" alt="' . get_the_author() . '">'; return $avatar; } add_filter( 'get_avatar', 'mytheme_get_avatar' ); 

РЕДАКТИРОВАТЬ

ps хорошей альтернативой этому подходу может быть простой плагин локальных аватаров .

EDIT 2

Фильтр применяется с использованием add_filter() , а не apply_filters() . Это была опечатка с моей стороны; теперь исправлено!

ИЗМЕНИТЬ 3

Я не думаю, что это правильно:

PS: Просто уточнить .. Я заменил get_avatar($tc->comment_author_email, $jmetc_options['avatar_size']); с add_filter('get_avatar', $avatar, $id_or_email, $size, $default, $alt);

Во-первых, вы все еще вызываете get_avatar() в файле шаблона, передавая все те же параметры, что и предыдущие. add_filter() принадлежит functions.php .

Во-вторых, вы можете передать дополнительные параметры вашей функции фильтра; например:

 function mytheme_get_avatar( $avatar, $id_or_email, $size ) { $avatar = '<img src="<' . get_template_directory_uri() . '/images/authors/' . $id_or_email . '.jpg" alt="' . get_the_author() . '" width="' . $size . 'px" height="' . $size . 'px" />'; return $avatar; } add_filter( 'get_avatar', 'mytheme_get_avatar', 10, 3 );