Intereting Posts
Enqueue WordPress jQuery после того, как он был снят с регистрации плагином Плагин с открытым исходным кодом и требует лицензии Код работает только каждый раз за его запуск Шаблон таксономии по умолчанию в плагине, переопределить в теме Как сделать изображение в виде миниатюры в блоге? Где происходит перенаправление 404? многопользовательский вопрос wordpress Укажите приоритет страницы над категорией с тем же именем? Как пропустить nonce? bbPress или WordPress + плагин форума? Отправить письмо от WordPress Пользовательские правила перезаписи для страницы архива и отдельной записи Сортировка определенной таксономии по дате архива с использованием URL-адреса Получение комментариев для сообщений с использованием WP_Query () и пользовательского цикла? Плагин для отображения pagemap под определенной страницей и следующей / предыдущей страницей под определенной страницей?

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

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