Intereting Posts
Как объединить мои короткие коды? Какие проблемы могут возникнуть, если я удалю префикс «wp-» из папок и файлов WordPress? wp_editor не изменяет теги html исходного содержимого Запретить сортировку и перетаскивание определенных почтовых ящиков Как избежать пользовательских css? Как фильтровать селектор роли? Отфильтровать ссылку на существующее содержание Как фильтровать get_users () аналогично pre_get_posts? Все темы сайтов functions.php изменены Как я могу скрыть постоянную связь / короткую ссылку для определенного пользователя, зарегистрированного в Пользователях определенного уровня? настроить страницу с ошибкой базы данных WordPress Пользовательский запрос $ wpdb для пользовательских типов сообщений по категориям add_shortcode не работает Можно ли скрыть пользовательские пользовательские настройки пользовательского интерфейса / меню из определенных ролей пользователей? Как отключить WordPress Media изменить размер версии другого размера?

Заменяйте аватары комментариев и ссылки одновременно

Я пытаюсь заменить данные автора комментария WordPress:

1) Аватар (загруженное изображение вместо Gravatar)

2) Ссылка автора (ссылка на страницу автора, которую могут комментировать только участники)

Я нашел отличное решение этого вопроса из этого вопроса и внедрил следующий код:

if ( ! function_exists( 't5_comment_uri_to_author_archive' ) ) { add_filter( 'get_comment_author_url', 't5_comment_uri_to_author_archive' ); function t5_comment_uri_to_author_archive( $uri ) { global $comment; // We do not get the real comment with this filter. if ( empty ( $comment ) or ! is_object( $comment ) or empty ( $comment->comment_author_email ) or ! $user = get_user_by( 'email', $comment->comment_author_email ) ) { return $uri; } return get_author_posts_url( $user->ID ); } } 

Код отлично подходит для замены ссылок, и я хочу использовать его для замены аватаров. Я создал копию функции и изменил имена и возвращаемые значения:

 if ( ! function_exists( 'my_comment_imgs' ) ) { add_filter( 'get_comment_author_url', 'my_comment_imgs' ); function my_comment_imgs( $uri ) { global $comment; // We do not get the real comment with this filter. if ( empty ( $comment ) or ! is_object( $comment ) or empty ( $comment->comment_author_email ) or ! $user = get_user_by( 'email', $comment->comment_author_email ) ) { return $uri; } return get_avatar( $user->ID ); } } 

Однако эта функция отрицает первый, поэтому я получаю обновленные аватары, но теряю ссылки автора. Как заменить оба элемента одновременно (аватары и ссылки)?

Solutions Collecting From Web of "Заменяйте аватары комментариев и ссылки одновременно"

Может быть, я был сгорел с работы раньше, но сегодня утром я взял еще один вариант с тем же кодом и сумел заставить его работать должным образом.

 if ( ! function_exists( 'comment_imgs' ) ) { add_filter( 'get_comment_author_url', 'comment_imgs' ); function comment_imgs( $avatar, $id_or_email, $size, $default, $alt ) { global $comment; // We do not get the real comment with this filter. if ( empty ( $comment ) or ! is_object( $comment ) or empty ( $comment->comment_author_email ) or ! $user = get_user_by( 'email', $comment->comment_author_email ) ) { return $uri; } return get_avatar( $user->ID ); } } 

Кредит на исходный код отправляется Thomas Scholz для ссылки на страницы автора, эта модификация извлекает локальные аватары, а две функции не сталкиваются друг с другом.