Intereting Posts
Как добавить текущий пользовательский таксономии к телу Каков наилучший способ опубликовать каждую фотографию, загруженную отдельно и автоматически? Можно ли вставить ссылку без тегов и сделать ее напрямую ссылкой в ​​сообщении? Продажа уникального продукта с woocommerce – упрощенная Работа с Gravatars в области развития локального хоста Изменить дату публикации для целей тестирования Как передать NULL в том, где массив для $ wpdb-> update Создание динамического веб-приложения для вопросника Получить термин имя и термин родительский в пользовательский пост тип permalink Экспортировать все сообщения из базы данных в JSON только после обновления базы данных query_posts по категории_имя и пользовательская таксономия Передача строки JQuery в URL Worldpress Ссылки из the_tag не работают Функция WPMU get_blog_details, last_updated / зарегистрированная и форматирование строки времени и даты Поиск пользовательских полей

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

Я пытаюсь заменить данные автора комментария 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 ); } } 

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

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

 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 для ссылки на страницы автора, эта модификация извлекает локальные аватары, а две функции не сталкиваются друг с другом.